๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
def maxShared(friends_nodes, friends_from, friends_to, friends_weight):
    interests = {}

    for i in range(len(friends_from)):
        pair = tuple(sorted([friends_from[i], friends_to[i]]))
        if pair not in interests:
            interests[pair] = set()
        interests[pair].add(friends_weight[i])

    max_shared = max(len(interests[pair]) for pair in interests)
    max_pairs = [pair for pair in interests if len(interests[pair]) == max_shared]

    max_product = max(pair[0] * pair[1] for pair in max_pairs)
   
    return max_product
def canAchieve(min_attention, attention, m, k):
    n = len(attention)
    diff = [0] * (n + 1)
    current_add = 0
    workshops_used = 0
   
    for i in range(n):
        current_add += diff[i]
        if attention[i] + current_add < min_attention:
            increment = min_attention - (attention[i] + current_add)
            workshops_used += increment
            if workshops_used > m:
                return False
            if i + k < n:
                diff[i + k] -= increment
            current_add += increment
   
    return workshops_used <= m

def maximizeMinAttention(attention, m, k):
    left = min(attention)
    right = max(attention) + m
   
    while left < right:
        mid = (left + right + 1) // 2
        if canAchieve(mid, attention, m, k):
            left = mid
        else:
            right = mid - 1
   
    return left
โค1
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <iostream>
#include <vector>
#include <unordered_map>
#include <string>
#include <sstream>
#include <algorithm>
#include <stdexcept>

using namespace std;

struct U {
    int i;
    bool a;
};

struct C {
    unordered_map<int, U> u;
    unordered_map<int, int> m;

    void p(vector<vector<string>>& e) {
        for (const auto& ev : e) {
            string a = ev[0];
            int t = 0;
            try {
                t = stoi(ev[1]);
            } catch (const invalid_argument& ex) {
                cerr << "Invalid timestamp: " << ev[1] << endl;
                continue;
            }

            if (a == "MESSAGE") {
                string ml = ev[2];
                istringstream iss(ml);
                string tk;
                while (iss >> tk) {
                    if (tk == "ALL") {
                        for (auto& us : u) {
                            m[us.first]++;
                        }
                    } else if (tk == "HERE") {
                        for (auto& us : u) {
                            if (us.second.a) {
                                m[us.first]++;
                            }
                        }
                    } else if (tk.size() >= 3) {
                        try {
                            int id = stoi(tk.substr(2));
                            m[id]++;
                        } catch (const invalid_argument& ex) {
                            cerr << "Invalid user ID: " << tk.substr(2) << endl;
                        }
                    }
                }
            } else if (a == "OFFLINE" && ev.size() >= 3) {
                string idStr = ev[2].substr(2);
                if (!idStr.empty()) {
                    try {
                        int id = stoi(idStr);
                        if (u.find(id) != u.end()) {
                            u[id].a = false;
                            m[id]--;
                            m[-1]--;
                            if (u[id].a) {
                                m[-2]--;
                            }
                        }
                    } catch (const invalid_argument& ex) {
                        cerr << "Invalid user ID: " << idStr << endl;
                    }
                }
            }
        }
    }

    vector<string> g() {
        vector<string> r;
        for (const auto& me : m) {
            if (me.first >= 0) {
                r.push_back("id" + to_string(me.first) + " - " + to_string(me.second));
            }
        }
        sort(r.begin(), r.end());
        return r;
    }
};

int main() {
    vector<vector<string>> e = {
        {"MESSAGE", "0", "ALL id158 id42"},
        {"OFFLINE", "1", "id158"},
        {"MESSAGE", "2", "id158 id158"},
        {"OFFLINE", "3", "id23"},
        {"MESSAGE", "60", "HERE id158 id42 id23"},
        {"MESSAGE", "61", "HERE"}
    };

    C c;
    c.p(e);
    vector<string> r = c.g();
    for (const string& s : r) {
        cout << s << endl;
    }
    return 0;
}
def min_cost_to_make_strongly_connected(N, tracks):
    from collections import defaultdict, deque
    import heapq

    def kosaraju_scc(N, adj_list, rev_adj_list):
        def dfs(node, adj_list, visited, stack):
            visited[node] = True
            for neighbor, _ in adj_list[node]:
                if not visited[neighbor]:
                    dfs(neighbor, adj_list, visited, stack)
            stack.append(node)

        def reverse_dfs(node, rev_adj_list, visited, scc):
            visited[node] = True
            scc.append(node)
            for neighbor in rev_adj_list[node]:
                if not visited[neighbor]:
                    reverse_dfs(neighbor, rev_adj_list, visited, scc)

        stack = []
        visited = [False] * (N + 1)
        for i in range(1, N + 1):
            if not visited[i]:
                dfs(i, adj_list, visited, stack)

        visited = [False] * (N + 1)
        sccs = []
        while stack:
            node = stack.pop()
            if not visited[node]:
                scc = []
                reverse_dfs(node, rev_adj_list, visited, scc)
                sccs.append(scc)

        return sccs

    adj_list = defaultdict(list)
    rev_adj_list = defaultdict(list)
    for A, B, C in tracks:
        adj_list[A].append((B, C))
        rev_adj_list[B].append(A)

    sccs = kosaraju_scc(N, adj_list, rev_adj_list)

    node_to_scc = {}
    for i, scc in enumerate(sccs):
        for node in scc:
            node_to_scc[node] = i

    component_graph = defaultdict(list)
    component_cost = {}
    for A, B, C in tracks:
        compA = node_to_scc[A]
        compB = node_to_scc[B]
        if compA != compB:
            if (compA, compB) not in component_cost or component_cost[(compA, compB)] > C:
                component_cost[(compA, compB)] = C

    pq = []
    for (u, v), cost in component_cost.items():
        heapq.heappush(pq, (cost, u, v))

    parent = list(range(len(sccs)))
    rank = [0] * len(sccs)

    def find(u):
        if parent[u] != u:
            parent[u] = find(parent[u])
        return parent[u]

    def union(u, v):
        root_u = find(u)
        root_v = find(v)
        if root_u != root_v:
            if rank[root_u] > rank[root_v]:
                parent[root_v] = root_u
            elif rank[root_u] < rank[root_v]:
                parent[root_u] = root_v
            else:
                parent[root_v] = root_u
                rank[root_u] += 1

    min_cost = 0
    edges_used = 0

    while pq and edges_used < len(sccs) - 1:
        cost, u, v = heapq.heappop(pq)
        if find(u) != find(v):
            union(u, v)
            min_cost += cost
            edges_used += 1

    return min_cost//2

Phonepe โœ…
def reverse_substrings(word):
    possible_strings = set()

    for i in range(1, len(word) + 1):
        reversed_prefix = word[:i][::-1] + word[i:]
        possible_strings.add(reversed_prefix)

    for i in range(1, len(word) + 1):
        reversed_suffix = word[:-i] + word[-i:][::-1]
        possible_strings.add(reversed_suffix)

    return min(possible_strings)
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <bits/stdc++.h>
#define ll long long 
using namespace std;
ll help(ll n,vector<vector<ll>>&v,vector<ll>&dp,ll i)
{
    if(i>=n) return 0;
    if(dp[i]!=-1) return dp[i];
    ll t=help(n,v,dp,i+1);
    ll l=i+1;
    ll r=n-1;
    ll res=n;
    while(l<=r)
    {
        ll mid=(l+r)/2;
        if(v[mid][0]>=v[i][1])
        {
            res=mid;
            r=mid-1;
        }
        else l=mid+1;
    }
    ll next=res;
    ll sum=v[i][2]+v[i][1]-v[i][0];
    t=max(t,sum+help(n,v,dp,next));
    return dp[i]=t;
}
ll solve(vector<ll>&pick,vector<ll>&drop,vector<ll>&tip)
{
    ll n=pick.size();
    vector<vector<ll>>rides(n);
    for(ll i=0;i<n;i++)
    {
        rides[i]={pick[i],drop[i],tip[i]};
    }
    sort(rides.begin(),rides.end());
    vector<ll>dp(n+10,-1);
    return help(n,rides,dp,0);
}
signed main()
{
    ll n; cin>>n;
    vector<ll>pick(n),drop(n),tip(n);
    for(ll i=0;i<n;i++) cin>>pick[i];
    for(ll i=0;i<n;i++) cin>>drop[i];
    for(ll i=0;i<n;i++) cin>>tip[i];
    cout<<solve(pick,drop,tip);
    return 0;
}
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
public static int[] teamSize(int[] talent, int talentsCount) {
        int n = talent.length;
        int[] result = new int[n];
        Arrays.fill(result, -1);

        Map<Integer, Integer> talentFreq = new HashMap<>();
        int left = 0, uniqueTalents = 0;

        for (int right = 0; right < n; right++) {
            talentFreq.put(talent[right], talentFreq.getOrDefault(talent[right], 0) + 1);
            if (talentFreq.get(talent[right]) == 1) {
                uniqueTalents++;
            }

            while (uniqueTalents == talentsCount) {
                result[left] = (result[left] == -1) ? right - left + 1 : Math.min(result[left], right - left + 1);

                talentFreq.put(talent[left], talentFreq.get(talent[left]) - 1);
                if (talentFreq.get(talent[left]) == 0) {
                    uniqueTalents--;
                }
                left++;
            }
        }

        return result;
    }
int solve(int n, int m, int k, vector<vector<int>>& profit) {
    vector<vector<int>> dp(n, vector<int>(m, 0));
   
    for (int i = 0; i < n; i++) {
        dp[i][0] = profit[i][0];
    }
   
    for (int j = 1; j < m; j++) {
        vector<int> temp(n, 0);
        for (int i = 0; i < n; i++) {
            for (int x = max(0, i - k); x <= min(n - 1, i + k); x++) {
                if (x != i) {
                    temp[i] = max(temp[i], dp[x][j-1]);
                }
            }
        }
        for (int i = 0; i < n; i++) {
            dp[i][j] = temp[i] + profit[i][j];
        }
    }
   
    int ans = 0;
    for (int i = 0; i < n; i++) {
        ans = max(ans, dp[i][m-1]);
    }
   
    return ans;
}

//max-profit
#include <bits/stdc++.h>
#define ll long long 
using namespace std;
ll solve(vector<vector<ll>>&a)
{
    ll n=a.size();
    if(a.empty())  return 0;
    ll sz=0,pre;
    vector<ll>cur(n);
    for(ll i=0;i<n;i++)
    {
        for(ll j=0;j<n;j++)
        {
            ll temp=cur[j];
            if (!i || !j || a[i][j]==0)
            {
                cur[j]=a[i][j];
            }
            else
            {
                cur[j]=min(pre,min(cur[j],cur[j-1]))+1;
            }
            sz=max(cur[j],sz);
            pre=temp;
        }
    }
    return sz;
}
signed main()
{
    ll n; cin>>n;
    vector<vector<ll>>a(n,vector<ll>(n));
    for(ll i=0;i<n;i++)
     for(ll j=0;j<n;j++) cin>>a[i][j];
    cout<<solve(a);
    return 0;
}


Movelsync cab compliance โœ…
#include <bits/stdc++.h>
using namespace std;

#define int long long
const int MOD=1e9+7;

int32_t main() {

  string src;cin>>src;
  string tar;cin>>tar;
  int k;cin>>k;
 
  int gw=0,bw=0;
 
  for(int i=0;i<src.size();i++){
    string temp = src.substr(i) + src.substr(0,i);
    if(temp == tar) gw++;
    else bw++;
  }
 
  int dp[k+1][2];
  dp[0][0] = (src==tar);
  dp[0][1] = !(src==tar);
 
  for(int i=1;i<=k;i++){
    dp[i][0] = ((dp[i-1][0]*(gw-1))%MOD + (dp[i-1][1]*gw)%MOD)%MOD;
    dp[i][1] = ((dp[i-1][1]*(bw-1))%MOD + (dp[i-1][0]*bw)%MOD)%MOD;
  }
 
  cout<<dp[k][0];
 
  return 0;
}


//NLP enthusiasts โœ…
def doesCircleExist(commands):
    def simulate(command):
        x, y = 0, 0
        dx, dy = 0, 1
        for _ in range(4): 
            for c in command:
                if c == 'G':
                    x += dx
                    y += dy
                elif c == 'L':
                    dx, dy = -dy, dx
                elif c == 'R':
                    dx, dy = dy, -dx
            if x == 0 and y == 0:
                return True
            if dx == 0 and dy == 1: 
                return False
        return False

    results = []
    for command in commands:
        results.append("YES" if simulate(command) else "NO")
    return results

Movie sync Circular route identification โœ…
๐Ÿ‘1