๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
9.63K subscribers
5.61K photos
3 videos
95 files
10.6K links
๐ŸšฉMain Group - @SuperExams
๐Ÿ“Job Updates - @FresherEarth

๐Ÿ”ฐAuthentic Coding Solutions(with Outputs)
โš ๏ธDaily Job Updates
โš ๏ธHackathon Updates & Solutions

Buy ads: https://telega.io/c/cs_algo
Download Telegram
#include <iostream>
#include <vector>
#include <algorithm>
#include <climits>
using namespace std;

int solve(int i, vector<int>& lst, int ad, const vector<int>& machineCount, const vector<int>& finalMachineCount, int shiftingCost) {
    int n = machineCount.size();
    if (i == n) {
        int res = ad;
        for (int k = 0; k < 3; ++k) {
            res += abs(lst[k] - finalMachineCount[k]);
        }
        return res;
    }
   
    int res = INT_MAX;
    res = min(res, solve(i + 1, lst, ad, machineCount, finalMachineCount, shiftingCost));
   
    for (int j = 0; j < 3; ++j) {
        lst[j] += machineCount[i];
        if (lst[j] - machineCount[i] != 0) {
            res = min(res, solve(i + 1, lst, ad + shiftingCost, machineCount, finalMachineCount, shiftingCost));
        } else {
            res = min(res, solve(i + 1, lst, ad, machineCount, finalMachineCount, shiftingCost));
        }
        lst[j] -= machineCount[i];
    }
   
    return res;
}

int getMinimumCost(const vector<int>& machineCount, const vector<int>& finalMachineCount, int shiftingCost) {
    vector<int> lst(3, 0);
    return solve(0, lst, 0, machineCount, finalMachineCount, shiftingCost);
}

int main() {
    vector<int> machineCount = { /* your values here */ };
    vector<int> finalMachineCount = { /* your values here */ };
    int shiftingCost = /* your value here */;
   
    cout << getMinimumCost(machineCount, finalMachineCount, shiftingCost) << endl;
    return 0;
}

GetminimumCost โœ…
int par[100005];
int find_par(int u) {
if(par[u] < 0) return u;
par[u] = find_par(par[u]);
return par[u];
}
bool merge(int u, int v) {
u = find_par(u), v = find_par(v);
if(u == v) return false;
if(par[u] > par[v]) swap(u, v);
par[u] += par[v];
par[v] = u;
return true;
}
set<int> g[100005];
vector<int> recoverDeadPods(int n, vector<vector<int>> connections, vector<vector<int>> queries) {
int p = 0;
for(auto x : connections) {
  p = max(p, x[0]);
  p = max(p, x[1]);
}
for(auto x : queries) {
  p = max(p, x[0]);
  p = max(p, x[1]);
}

for(int i = 1; i <= p; i++) par[i] = -1;
for(auto x : connections) {
  merge(x[0], x[1]);
}

for(int i = 1; i <= p; i++) {
  int u = find_par(i);
  g[u].insert(i);
}

vector<int> ans;
for(auto x : queries) {
  if(x[0] == 1) {
   int u = find_par(x[1]);

   if(g[u].empty()) ans.push_back(-1);
   else {
    auto iter = g[u].find(x[1]);
    if(iter != g[u].end()) ans.push_back(x[1]);
    else ans.push_back(*g[u].begin());
   }
  } else {
   int u = find_par(x[1]);
   auto iter = g[u].find(x[1]);
   if(iter != g[u].end()) g[u].erase(iter);
  }
}
return ans;
}

Pods Cisco โœ…
๐Ÿ˜ฑ1
def getMinTime(n, cache):
    # Write your code here
    def solve(mid):
        h = {}
        for i in cache:
            h[i] = 1+h.get(i,0)
        extrawork = 0
        cnt = 0
        for i in range(1,n+1):
            if h.get(i,0) > mid:
                extrawork += h[i]-mid
            else:
                cnt += (mid-h.get(i,0))//2
        return cnt>=extrawork
    l,r = 1, 2*len(cache)
    while l<=r:
        mid = (l+r)//2
        if solve(mid):
            ans = mid
            r = mid-1
        else:
            l = mid+1
    return ans

           
    l,r = 1, len(cache)
    while l<=r:
        mid = (l+r)//2
        if solve(mid):
            ans = mid
            r = mid-1
        else:
            l = mid+1
    return ans

Min time
Cisco โœ