๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
9.61K subscribers
5.59K photos
3 videos
95 files
10.2K 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
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include<bits/stdc++.h>
#define fastread()  (ios_base:: sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL));
#define pb(x) push_back(x)
#define all(x) x.begin(),x.end()
#define test(x)  int x; cin>>x; while(x--)
#define int long long int
#define print(a,n) for(int i=0;i<n;i++) cout<<a[i]<<" ";
#define input(a,n) for(int i=0;i<n;i++) cin>>a[i];
int M= 1e9+7;
#define endl "\n"
int ncr(int n,int r){ int res=1; if(r>n-r)r=n-r; for(int i=0;i<r;i++) {  res*=n-i;  res/=i+1; } return res; }
//int f(int n)  {if (n >= M) return 0;int result = 1; for (int i = 1; i <= n; i++) result = (result * i) % M;return result;}

using namespace std;

int dx[] = { 0,1,0,-1, -1, 1, 1, -1};
int dy[] = {-1,0,1,0,   1, 1, -1, -1};

int dfs(int node, vector<vector<int>> &adj, vector<bool> &vis, vector<bool> &corrupt)
{
    queue<int> q;
    int mini =  INT_MAX;
    q.push(node);
 
    while(!q.empty())
    {
        int x = q.front();
        q.pop();
        if(x !=node && !corrupt[x])
            mini = min(mini, x);
        for(auto it : adj[x])
        {
          if(!vis[it])
             {
                q.push(it);
                vis[it] = true;
            }
        }
    }
    return mini == INT_MAX? -1: mini;

}
int solve()
{
    int nodes, edges;
    cin >> nodes >> edges;
    int n =  nodes;
    int temp1;
    cin >>  temp1;
    vector<bool> vis(n + 1, false);
    vector<vector<int>> adj(n + 1);
    for(int i = 0;i < edges;i++)
    {
        int p, q;
        cin >> p >> q;
        adj[p].push_back(q);
        adj[q].push_back(p);

    }


    int q;
    cin >> q;
    int temp;
    cin >> temp;

    vector<int> ans;
    vector<bool> corrupt(n + 1, false);
    while(q--)
    {
        int x, y;
        cin >> x >> y;

        if(x  ==  1)
        {
           vector<bool> vis(n + 1, false);
           int mini = y;
           if(corrupt[y])
             {
                mini =  dfs(y, adj, vis, corrupt);
            }
         
           ans.push_back(mini);
        }

        else
            corrupt[y] = true;
    }

    for(int i = 0; i < ans.size();i++)
        cout << ans[i] << endl;
    return 0;
}



signed main() {
    solve();
    return 0;
}

UBSโœ…
Dead Pod Recovery
int solution(vector<string> &board)
{
  const size_t n = board.size();
  const size_t m = board[0].size();

  int res = 0;
    // Initialize a prefix sum array to store counts of 'A's and 'B's
    vector<vector<int>> prefixA(n + 1, vector<int>(m + 1, 0));
    vector<vector<int>> prefixB(n + 1, vector<int>(m + 1, 0));

    // Compute the prefix sums for 'A's and 'B's
    for (size_t i = 1; i <= n; ++i) {
        for (size_t j = 1; j <= m; ++j) {
            prefixA[i][j] = prefixA[i - 1][j] + prefixA[i][j - 1] - prefixA[i - 1][j - 1];
            prefixB[i][j] = prefixB[i - 1][j] + prefixB[i][j - 1] - prefixB[i - 1][j - 1];
            if (board[i - 1][j - 1] == 'A') {
                prefixA[i][j]++;
            } else if (board[i - 1][j - 1] == 'B') {
                prefixB[i][j]++;
            }

     if (prefixA[i][j] == prefixB[i][j]) res++;
        }
    }
    return res;
   
}
vector<int> solve(int n, vector<string>& logs) {
    vector<int> eT(n, 0);
    stack<pair<int, int>> fS;

    for (const string& l : logs) {
        stringstream s(l);
        string t;
        vector<string> ts;
        while (getline(s, t, ':')) {
            ts.push_back(t);
        }

        int f = stoi(ts[0]);
        string a = ts[1];
        int tm = stoi(ts[2]);

        if (a == "start") {
            fS.push({f, tm});
        } else {
            int eTm = tm - fS.top().second + 1;
            eT[f] += eTm;
            fS.pop();

            if (!fS.empty()) {
                eT[fS.top().first] -= eTm;
            }
        }
    }

    return eT;
}

Co prime CPU โœ…
long long g[1000001],f[1000001],res=0;
int n,k,m,l,r,c,p;
vector<pair<int,int> > v[1000001 +7];
void upd(int id,int num,long long money)
{
    for(int cin=id;cin<1000001;cin=cin+(cin&-cin))f[cin]+=num,g[cin]+=money;
}
long long get()
{
    int cur=0,tar=k;
    long long res=0;
    for(int cin=19;cin>=0;cin--)
    if(cur+(1<<cin)<1000001&&tar>f[cur+(1<<cin)])
    {
        tar-=f[cur+(1<<cin)];
        res+=g[cur+(1<<cin)];
        cur+=(1<<cin);

    }

    if(tar&&cur<1000001 -1)res+=1LL*(cur+1)*tar;

    return res;
}

int solution(int n, int k, const vector<vector<int>> &plans)
{
  for(int i = 0; i <= n; i++) v[i].clear();
  fill(g, g+n+1, 0);
  fill(f, f+n+1, 0);
  for (const auto &plan : plans) {
    int l = plans[0], r = plans[1], c = plans[2], p = plans[3];
        v[l].push_back(pair<int,int>(c,p));
        v[r+1].push_back(pair<int,int>(-c,p));
  }
  for(int i=1;i<=n;i++)
  {
        int sz=v[i].size();
        for(int j=0;j<sz;j=j+1)upd(v[i][j].second,v[i][j].first,1LL*v[i][j].first*v[i][j].second);
        res+=get();
  }
  return res;
}


IBM โœ