๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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 <bits/stdc++.h>
using namespace std;
using namespace std;
int maxCoins( vector<int> a, vector<int> b)

{
    int N = a.size(), M = b.size();
    vector<int> flag(2, 0);
    int i = 0, j = 0;
    while (i < N && j < M)
    {
        if (a[i] < b[j])
            flag[0] += a[i++];
        else if (a[i] > b[j])
            flag[1] += b[j++];
        else
        {
            int v = a[i], count_a = 0, count_b = 0;
            while (i < N && a[i] == v)
                count_a++, i++;
            while (j < M && b[j] == v)
                count_b++, j++;
            int r0 = max(flag[0] + count_a * v, flag[1] + (count_a + count_b - 1) * v);
            int r1 = max(flag[1] + count_b * v, flag[0] + (count_a + count_b - 1) * v);
            if (count_a > 1 && count_b > 1)
            {
                r0 = max(r0, flag[0] + (count_a + count_b - 2) * v);
                r1 = max(r1, flag[1] + (count_a + count_b - 2) * v);
            }
            flag[0] = r0;
            flag[1] = r1;
        }
    }
    while (i < N)
        flag[0] += a[i++];
    while (j < M)
        flag[1] += b[j++];
    return max(flag[0], flag[1]);
}

int solve(vector<int> &A, vector<int> &B)
{
    int n = A.size();
    int m = B.size();
    int ans = 0;
    int i = 0, j = 0;
    bool flag = false;
    if (is_sorted(A.begin(), A.end()) && is_sorted(B.begin(), B.end()))
    {
        flag = true;
    }
    else
    {
        reverse(B.begin(), B.end());
        reverse(A.begin(), A.end());
    }

    return maxCoins(A,B);
}



Cave Coin Collection โœ…
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll solve(vector<ll>&a,vector<ll>&b,ll n,ll m)
{
    ll ans=0;
    ll s1=0,s2=0;
    ll i=0,j=0;
    while(i<n and j<m)
    {
        if(a[i]<b[j]) s1+=a[i++];
        else if(a[i]>b[j]) s2+=b[j++];
        else
        {
            ans+=max(s1,s2)+a[i];
            i++;
            j++;
            s1=0;
            s2=0;
        }
    }
    while(i<n) s1+=a[i++];
    while(j<m) s2+=b[j++];
    return max(s1,s2)+ans;
}
signed main()
{
    ll n; cin>>n;
    vector<ll>a(n);
    for(ll i=0;i<n;i++) cin>>a[i];
    ll m; cin>>m;
    vector<ll>b(m);
    for(ll i=0;i<n;i++) cin>>b[i];
    cout<<solve(a,b,n,m);
}


Letter Candles โœ…
int solve(vector<vector<int>>& grid) {
        int n=grid.size(),m=grid[0].size();
        int dirx[4]={-1,1,0,0};
        int diry[4]={0,0,-1,1};
        queue<pair<int,int>> q;
        int cnt=0,cnt2=0;
        vector<vector<int>> vis(n,vector<int>(m,-1));
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(grid[i][j]==2){
                    q.push({i,j});
                    vis[i][j]=1;
                    cnt2++;
                }else if(grid[i][j]==1){
                     cnt++;
                }
            }
        }
       
        int len=0;
        while(q.size()){
           
            int sz=q.size();
            if(cnt==0) return len;
            for(int l=0;l<sz;l++){
               
               
                pair<int,int> p1=q.front();
                q.pop();
                int i=p1.first,j=p1.second;
               
               
                for(int k=0;k<4;k++){
                    int x=i+dirx[k];
                    int y=j+diry[k];
                   
                    if(x>=0 and x<n and y>=0 and y<m and vis[x][y]==-1 and grid[x][y]==1){
                        q.push({x,y});
                        vis[x][y]=1;
                        cnt--;
                    }  
                }  
            }
           
            len++;
        }
        if(cnt>0) return -1;
        return 0;
    }
int main() {
 
  int n,m;
  cin>>n>>m;
  vector<vector<int>> v(n,vector<int>(m));
  for(int i=0;i<n;i++)
  for(int j=0;j<m;j++)
     cin>>v[i][j];
    
  cout<<solve(v);    
 
 
    }

Virus Spread โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <bits/stdc++.h>
using namespace std;
#define MAXN 30005
vector<int> adj[MAXN];
int value[MAXN];
int xor_from_root[MAXN];
bool visited[MAXN];
void dfs(int node, int xor_val) {
    visited[node] = true;
    xor_from_root[node] = xor_val ^ value[node];
   
    for (int neighbor : adj[node]) {
        if (!visited[neighbor]) {
            dfs(neighbor, xor_from_root[node]);
        }
    }
}
void solve(int N, int Q, vector<int>& values, vector<pair<int, int>>& edges, vector<tuple<int, int, int>>& queries) {
    for (int i = 1; i <= N; ++i) {
        value[i] = values[i - 1];
    }
   
    for (auto& edge : edges) {
        int a, b;
        tie(a, b) = edge;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
   
    memset(visited, false, sizeof(visited));
    dfs(1, 0);
   
    for (auto& query : queries) {
        int u, v, k;
        tie(u, v, k) = query;
       
        int path_xor = xor_from_root[u] ^ xor_from_root[v];
        bool found = false;

        if (path_xor == k) {
            found = true;
        } else {
            for (int i = 1; i <= N; ++i) {
                if ((xor_from_root[u] ^ xor_from_root[v] ^ value[i]) == k) {
                    found = true;
                    break;
                }
            }
        }

        if (found) {
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }
}
int main() {
    int N, Q;
    cin >> N >> Q;
   
    vector<int> values(N);
    for (int i = 0; i < N; ++i) {
        cin >> values[i];
    }
   
    vector<pair<int, int>> edges(N - 1);
    for (int i = 0; i < N - 1; ++i) {
        int a, b;
        cin >> a >> b;
        edges[i] = {a, b};
    }
   
    vector<tuple<int, int, int>> queries(Q);
    for (int i = 0; i < Q; ++i) {
        int u, v, k;
        cin >> u >> v >> k;
        queries[i] = {u, v, k};
    }
   
    solve(N, Q, values, edges, queries);
   
    return 0;
}


XOR Tree โœ…
๐Ÿ‘2
def solve(L, R):
    def first_digit(n):
        while n >= 10:
            n //= 10
        return n
   
    count = 0
    for number in range(L, R + 1):
        if first_digit(number) == number % 10:
            count += 1
   
    return count

Unsafe Password โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<pair<ll,ll>>solve(ll n,ll m)
{
    vector<pair<ll,ll>>path;
    ll x=0,y=0;
    ll dx=1,dy=1;
    while(1)
    {
        path.push_back({x, y});
        ll nx=x+dx;
        ll ny=y+dy;
        if(nx<0 or nx>=n) dx=-dx;
        if(ny<0 or ny>=m) dy=-dy;
        x+=dx;
        y+=dy;
        if((x==0 && y==0) or (x==0 && y==m-1) or (x==n-1 && y==0) or (x==n-1 && y==m-1))
        {
            path.push_back({x,y});
            break;
        }
    }
    return path;
}
signed main()
{
    ll n,m; cin>>n>>m;
    auto ans=solve(n,m);
    for(ll i=0;i<ans.size();i++)
    {
        cout<<ans[i].first<<" "<<ans[i].second;
        if(i!=ans.size()-1) cout<<", ";
    }

  
}


A Ray of Light
Culfit โœ