๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
9.57K subscribers
5.58K photos
3 videos
95 files
9.93K 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
int getDistance(string word){
    unordered_map<char , pair<int,int>> mpp;
    mpp['Q'] = {0, 0};
    mpp['W'] = {0, 1};
    mpp['E'] = {0, 2};
    mpp['R'] = {0, 3};
    mpp['T'] = {0, 4};
    mpp['Y'] = {0, 5};
    mpp['U'] = {0, 6};
    mpp['I'] = {0, 7};
    mpp['O'] = {0, 8};
    mpp['P'] = {0, 9};

    mpp['A'] = {1, 0};
    mpp['S'] = {1, 1};
    mpp['D'] = {1, 2};
    mpp['F'] = {1, 3};
    mpp['G'] = {1, 4};
    mpp['H'] = {1, 5};
    mpp['J'] = {1, 6};
    mpp['K'] = {1, 7};
    mpp['L'] = {1, 8};

    mpp['Z'] = {2, 1};
    mpp['X'] = {2, 2};
    mpp['C'] = {2, 3};
    mpp['V'] = {2, 4};
    mpp['B'] = {2, 5};
    mpp['N'] = {2, 6};
    mpp['M'] = {2, 7};
    int result= 0;
    pair<int,int> cur = {0,0};
    for (char x : word){
        result = result + abs(cur.first-mpp[x].first) + abs(cur.second-mpp[x].second);
        cur = mpp[x];
    }

    return result;
}

Typing Distance
Hackerrank โœ…
#include <bits/stdc++.h>
using namespace std;

const int INF = INT_MAX;

vector<int> dijkstra(int s, int n, const vector<vector<pair<int, int>>>& adj) {
    vector<int> d(n + 1, INF);
    d[s] = 0;
    priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
    pq.push({0, s});

    while (!pq.empty()) {
        int cd = pq.top().first;
        int u = pq.top().second;
        pq.pop();

        if (cd > d[u]) continue;

        for (const auto& nbr : adj[u]) {
            int v = nbr.first;
            int w = nbr.second;

            if (d[u] + w < d[v]) {
                d[v] = d[u] + w;
                pq.push({d[v], v});
            }
        }
    }
    return d;
}

int minCostPath(int n, vector<int>& from, vector<int>& to, vector<int>& w, int x, int y) {
    vector<vector<pair<int, int>>> adj(n + 1);
    for (int i = 0; i < from.size(); i++) {
        int u = from[i], v = to[i], wt = w[i];
        adj[u].push_back({v, wt});
        adj[v].push_back({u, wt}); 
    }

    vector<int> ds = dijkstra(1, n, adj);
    vector<int> dx = dijkstra(x, n, adj);
    vector<int> dy = dijkstra(y, n, adj);
    int min_cost = ds[x] + dx[y] + dy[n];

    return min_cost;
}

Two junctions โœ…
๐Ÿ‘1
def countGroups(tags, queries):
    from collections import defaultdict
    res = []
    for l, r in queries:
        c = defaultdict(int)
        for i in range(l-1, r):
            c[tags[i]] += 1
        cnt = sum(v // 2 for v in c.values())
        res.append(cnt)
    return res


Twillo (intern) โœ…
def counts(a, b):
    a.sort()
    res = []
    for x in b:
        l, r = 0, len(a)
        while l < r:
            mid = (l + r) // 2
            if a[mid] <= x:
                l = mid + 1
            else:
                r = mid
        res.append(l)
    return res


Twillo (Intern) โœ…
๐Ÿ‘1
import heapq

def solve(n,m,size,taste):
dishes = sorted(zip(taste,size),reverse=True)
pq = []
res, sizeSum = 0 , 0
for t,s in dishes :
heapq.heappush(pq,s)
sizeSum += s
if len(pq) > m :
sizeSum -= heapq.heappop(pq)
performance = sizeSum*t
res = max(res,performance)
return res

Tasty Dishes โœ