๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
long long dp[2005][2005];

long long rec(int level, int i, int n, int m, std::vector<int>& a, std::vector<int>& b) {
    if (level == m) {
        return 0;
    }

    if (dp[level][i] != -1) {
        return dp[level][i];
    }

    int j = n - level + i - 1;
    long long ans = rec(level + 1, i + 1, n, m, a, b) + ((long long)a[i]) * b[level];
    ans = std::max(ans, rec(level + 1, i, n, m, a, b) + ((long long)a[j]) * b[level]);

    return dp[level][i] = ans;
}

long getMaxTotalCompatibility(std::vector<int> hardware_compatibility, std::vector<int> computer_compatibility) {
    int n = hardware_compatibility.size();
    int m = computer_compatibility.size();

    for (int i = 0; i <= m; i++) {
        for (int j = 0; j <= m; j++) {
            dp[i][j] = -1;
        }
    }

    return rec(0, 0, n, m, hardware_compatibility, computer_compatibility);
}

DE Shaw โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
def can_download_all_files(k, files, latency):
    remaining_files = files.copy()
    time = 0
    while any(remaining_files):
        if k <= 0:
            return False
        max_latency = 0
        for i in range(len(remaining_files)):
            if remaining_files[i] > 0:
                downloaded = min(k, remaining_files[i])
                remaining_files[i] -= downloaded
                if remaining_files[i] > 0:
                    max_latency = max(max_latency, latency[i])
        k -= max_latency
        time += 1
    return True

def get_min_server_speed(files, latency):
    low, high = 1, max(files)
    while low < high:
        mid = (low + high) // 2
        if can_download_all_files(mid, files, latency):
            high = mid
        else:
            low = mid + 1
    return low

n = int(input())
files = list(map(int, input().split()))
latency = list(map(int, input().split()))

result = get_min_server_speed(files, latency)
print(result)


DE Shaw โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
def get_level(rating):
    if rating < 1000:
        return "beginner"
    elif rating < 1500:
        return "intermediate"
    elif rating < 2000:
        return "advanced"
    else:
        return "pro"
def solution(initial, changes):
    rating = initial
    for change in changes:
        rating += change
        rating = max(1, min(2500, rating)) 
    return get_level(rating)
def change_directory(commands):
    current_directory = ['/']
   
    for command in commands:
        if command == 'cd /':
            current_directory = ['/']
        elif command == 'cd .':
            continue
        elif command == 'cd -':
            if len(current_directory) > 1:
                current_directory.pop()
        elif command.startswith('cd '):
            subdirectory = command.split(' ')[1]
            current_directory.append(subdirectory)
   
    return '/' + '/'.join(current_directory[1:])
๐Ÿ‘1
def subsequence_sums_xor(arr):
    n = len(arr)
    all_sums = {0}  # Start with the empty subsequence sum
   
    for num in arr:
        new_sums = set()
        for s in all_sums:
            new_sums.add(s + num)
        all_sums.update(new_sums)
   
    result_xor = 0
    for sum_value in all_sums:
        result_xor ^= sum_value
   
    return result_xor

Array subsequence sums โœ…
SELECT 
    u.email,
    COUNT(t.amount) AS total_transactions,
    MIN(t.amount) AS min_amount,
    MAX(t.amount) AS max_amount,
    SUM(t.amount) AS total_amount
FROM
    users u
JOIN
    transactions t ON u.id = t.user_id
WHERE
    t.dt >= '2024-03-01' AND t.dt < '2024-04-01'
GROUP BY
    u.email
ORDER BY
    u.email;


User Transaction Details โœ…
def max_difference(arr):
    if len(arr) < 2:
        return -1

    min_value = arr[0]
    max_diff = -1

    for i in range(1, len(arr)):
        if arr[i] > min_value:
            max_diff = max(max_diff, arr[i] - min_value)
        min_value = min(min_value, arr[i])

    return max_diff

River Recordsโœ…
def findMaxGuests(arrl, exit, n):
    arrl.sort()
    exit.sort()

    guests_in = 1
    max_guests = 1
    time = arrl[0]
    i = 1
    j = 0

    while i < n and j < n:
        if arrl[i] <= exit[j]:
            guests_in += 1
            if guests_in > max_guests:
                max_guests = guests_in
                time = arrl[i]
            i += 1
        else:
            guests_in -= 1
            j += 1

   return time

Adobe โœ…
#include <cstdio>
#include <algorithm>

const int maxN = 2 * 1e7 + 5;
long long dp1[maxN], dp2[maxN], dp3[maxN];
long long ans, ans1, ans2, ans3, pom;
int n, idx, l[5000];

int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &l[i]);
    }

    std::sort(l, l + n);

    for (int i = 0; i < n; i++) {
        dp1[l[i]]++;
    }

    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            dp2[l[i] + l[j]]++;
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i; j++) {
            if (l[i] != l[i - 1]) {
                dp3[l[i]] += dp2[l[i] - l[j]];
                if (3 * l[j] == l[i]) {
                    dp3[l[i]] -= (dp1[l[j]] - 1);
                } else if (2 * l[j] < l[i]) {
                    dp3[l[i]] -= dp1[l[i] - 2 * l[j]];
                }
            }
        }
    }

    for (int i = 1; i < n; i++) {
        if (l[i] != l[i - 1]) {
            dp3[l[i]] = dp3[l[i]] / 3;
        }
    }

    ans = 0;
    for (int i = 1; i < n; i++) {
        if (l[i] != l[i - 1]) {
            ans += (dp1[l[i]] * (dp1[l[i]] - 1) * (dp1[l[i]] - 2) * dp3[l[i]]) / 6;
        }
    }

    for (int i = 1; i < n; i++) {
        if (l[i] != l[i - 1]) {
            idx = 0;
            pom = 0;
            ans2 = 0;
            ans3 = 0;

            while (2 * l[idx] < l[i]) {
                if (pom != l[idx]) {
                    pom = l[idx];
                    ans3 += (dp1[l[idx]] * (dp1[l[idx]] - 1) * dp1[l[i] - l[idx]] * (dp1[l[i] - l[idx]] - 1)) / 4;

                    if (l[i] % 2 == 0) {
                        ans3 += (dp1[l[idx]] * dp1[l[i] - l[idx]] * dp1[l[i] / 2] * (dp1[l[i] / 2] - 1)) / 2;
                        ans2 += dp1[l[idx]] * dp1[l[i] - l[idx]] * (dp2[l[i]] - (dp1[l[idx]] * dp1[l[i] - l[idx]]) - (dp1[l[i] / 2] * (dp1[l[i] / 2] - 1)) / 2);
                    } else {
                        ans2 += (dp1[l[idx]] * dp1[l[i] - l[idx]]) * (dp2[l[i]] - (dp1[l[idx]] * dp1[l[i] - l[idx]]));
                    }
                }
                idx++;
            }

            ans2 = ans2 / 2;
            ans2 += ans3;

            if (2 * l[idx] == l[i]) {
                ans2 += (dp1[l[idx]] * (dp1[l[idx]] - 1) * (dp1[l[idx]] - 2) * (dp1[l[idx]] - 3)) / 24;
            }
           
            ans1 += ans2 * (dp1[l[i]] * (dp1[l[i]] - 1)) / 2;
        }
    }

    ans += ans1;
    printf("%lld", ans);

    return 0;
}

Magical sticks โœ…
๐Ÿ‘1
def best_sum_downward_tree_path(parent, values):
    dp = [0] * len(parent)
    max_value = float('-inf')

    for i in range(len(parent)):
        p = parent[i]
        value = values[i]

        dp[i] = value if p == -1 else max(dp[p] + value, value)
        max_value = max(dp[i], max_value)

    return max_value

Best sum download Tree Path
Adobe โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int>& A, vector<int>& B, int X, int Y) {
    int N = A.size();
    vector<int> dpA(N), dpB(N);

    // Initial condition: Start at position 0 on either line
    dpA[0] = A[0];
    dpB[0] = B[0];

    // Fill the dp arrays
    for (int i = 1; i < N; ++i) {
        dpA[i] = min(dpA[i - 1] + A[i], dpB[i - 1] + Y + A[i]);
        dpB[i] = min(dpB[i - 1] + B[i], dpA[i - 1] + X + B[i]);
    }

    // The result is the minimum time to complete the car on either line at the last position
    return min(dpA[N - 1], dpB[N - 1]);
}

int main() {
    int N, X, Y;
    cin >> N >> X >> Y;
    vector<int> A(N), B(N);
    for (int i = 0; i < N; ++i) {
        cin >> A[i];
    }
    for (int i = 0; i < N; ++i) {
        cin >> B[i];
    }
    cout << solution(A, B, X, Y) << endl;
    return 0;
}
๐Ÿ‘1
def solution(numbers, zerosToOne):
    a = numbers.count(1)
    b = numbers.count(0)
    seconds = 0
    while True:
        if b >= zerosToOne:
            b -= zerosToOne
            a += 1
        elif a > 0:
            a -= 1
            b += 1
        else:
            break
        seconds += 1
   
    return seconds
#include <iostream>
#include <string>
using namespace std;
void solve(string X, int Y) {
    long long M = stoll(X);
    while (true) {
        if (to_string(M).find(X) == 0 && M % Y == 0) {
            cout << M << endl;
            return;
        }
        M++;
    }
}

int main() {
    string X;
    int Y;
    cin >> X >> Y;
    solve(X, Y);
    return 0;
}