๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
vector<int> findMinTeamLengths(int tCount, vector<int>& tList) {
    int n = tList.size();
    vector<int> res(n, -1);

    unordered_map<int, int> tMap;
    int dCount = 0;
    int l = 0;

    for (int r = 0; r < n; r++) {
        int curT = tList[r];
       
        if (tMap[curT] == 0) {
            dCount++;
        }
        tMap[curT]++;
       
        while (dCount == tCount) {
            res[l] = r - l + 1;
            int lT = tList[l];
            tMap[lT]--;
            if (tMap[lT] == 0) {
                dCount--;
            }
            l++;
        }
    }

    return res;
}

//quiz competition โœ…
LG is hiring for Research Engineer via Online Challenge

Qualification: B.E./B.Tech

Stream : CS/IT/ISE

Eligibility Criteria:  (70% and above or 8.0 CGPA)

Skills: C++ Programming, OOPS, Data Structure and Algorithms, Communication

Passed out: 2023/2024

Backlog: No Backlog

Last date of registration: 6th August 2024

Online Assessment Tentative Date: 8th August 2024

Face-to-Face Interview : LG Soft India, Bangalore

Job Requirements :5

CTC : 7 - 7.5 LPA

Apply Here : https://hiremee.co.in/jobs-list/lg-soft-india-private-limited/software-engineer-69814
def count_not_divisible(K, L, R):
    def sieve_of_eratosthenes(n):
        is_prime = [True] * (n + 1)
        primes = []
        for p in range(2, n + 1):
            if is_prime[p]:
                primes.append(p)
                for multiple in range(p * p, n + 1, p):
                    is_prime[multiple] = False
        return primes

    def count_divisible_up_to(x, primes):
        from itertools import combinations
        count = 0
        for i in range(1, len(primes) + 1):
            for comb in combinations(primes, i):
                lcm = 1
                for num in comb:
                    lcm *= num
                    if lcm > x:
                        break
                if lcm > x:
                    continue
                if i % 2 == 1:
                    count += x // lcm
                else:
                    count -= x // lcm
        return count

    def count_not_divisible_up_to(x, primes):
        if x == 0:
            return 0
        return x - count_divisible_up_to(x, primes)

    L = int(L)
    R = int(R)

    primes = sieve_of_eratosthenes(K)
   
    count_R = count_not_divisible_up_to(R, primes)
    count_L_minus_1 = count_not_divisible_up_to(L - 1, primes)

    return count_R - count_L_minus_1

K = int(input().strip())
L = input().strip()
R = input().strip()

result = count_not_divisible(K, L, R)
print(result)

Divisible string โœ…
Infosys
def max_beauty_sum(A, intervals):
    N = len(A)
    intervals.sort(key=lambda x: x[1])
    dp = [0] * (N + 1)
    last_non_overlapping = [0] * (N + 1)
   
    for start, end in intervals:
        distinct = set(A[start-1:end])
        beauty = sum(distinct)
        prev_end = last_non_overlapping[start-1]
       
        dp[end] = max(dp[end], dp[prev_end] + beauty)
       
        for i in range(end, N + 1):
            last_non_overlapping[i] = max(last_non_overlapping[i], end)
   
    return max(dp)


Interval maximization โœ…
#include <bits/stdc++.h>
using namespace std;

const int m = 1e9 + 7;

int main()
{
    int numElements, divisor;
    cin >> numElements >> divisor;
    vector<int> elements(numElements);
    for (int i = 0; i < numElements; i++)
    {
        cin >> elements[i];
    }

    vector<vector<vector<long long>>> dp(divisor, vector<vector<long long>>(divisor, vector<long long>(divisor, 0)));
    dp[0][0][0] = 1;

    for (int value : elements)
    {
        vector<vector<vector<long long>>> newDp(divisor, vector<vector<long long>>(divisor, vector<long long>(divisor, 0)));

        for (int rSum = 0; rSum < divisor; rSum++)
        {
            for (int gSum = 0; gSum < divisor; gSum++)
            {
                for (int bSum = 0; bSum < divisor; bSum++)
                {
                    if (dp[rSum][gSum][bSum] > 0)
                    {
                        newDp[(rSum + value) % divisor][gSum][bSum] = (newDp[(rSum + value) % divisor][gSum][bSum] + dp[rSum][gSum][bSum]) % m;
                        newDp[rSum][(gSum + value) % divisor][bSum] = (newDp[rSum][(gSum + value) % divisor][bSum] + dp[rSum][gSum][bSum]) % m;
                        newDp[rSum][gSum][(bSum + value) % divisor] = (newDp[rSum][gSum][(bSum + value) % divisor] + dp[rSum][gSum][bSum]) % m;
                    }
                }
            }
        }

        dp = newDp;
    }

    long long ass = 0;
    for (int rSum = 0; rSum < divisor; rSum++)
    {
        for (int gSum = 0; gSum < divisor; gSum++)
        {
            int bSum = (divisor - rSum - gSum) % divisor;
            if (bSum < 0)
                bSum += divisor;
            ass = (ass + dp[rSum][gSum][bSum]) % m;
        }
    }

    cout << ass << endl;
    return 0;
}

RGB colouring โœ…
๐Ÿ‘1
#include <bits/stdc++.h>
using namespace std;
#define int long long

int32_t main()
{
    int N, M;
    cin >> N >> M;

    vector<vector<int>> grid(N, vector<int>(M));
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
        {
            cin >> grid[i][j];
        }
    }

    vector<vector<long long>> dp(N, vector<long long>(M, 0));
    vector<vector<long long>> dogDistance(N, vector<long long>(M, LLONG_MAX));

    if (grid[0][0] == 0)
    {
        dogDistance[0][0] = 0;
    }

    dp[0][0] = grid[0][0];

    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
        {
            if (i == 0 && j == 0)
                continue;

            if (i > 0)
            {
                dp[i][j] = max(dp[i][j], dp[i - 1][j] + grid[i][j] - dogDistance[i - 1][j]);
                dogDistance[i][j] = min(dogDistance[i][j], dogDistance[i - 1][j] + 2);
            }

            if (j > 0)
            {
                dp[i][j] = max(dp[i][j], dp[i][j - 1] + grid[i][j] - dogDistance[i][j - 1]);
                dogDistance[i][j] = min(dogDistance[i][j], dogDistance[i][j - 1] + 2);
            }

            if (grid[i][j] == 0)
            {
                dogDistance[i][j] = 0;
            }
        }
    }

    cout << dp[N - 1][M - 1] << endl;

    return 0;
}

Lost in Orange Grove โœ…
from collections import defaultdict, deque

def dfs_count(node, parent, adj, A, mod_target):
    count = 0
    stack = [(node, parent)]
    while stack:
        current, parent = stack.pop()
        if A[current] % 3 == mod_target:
            count += 1
        for neighbor in adj[current]:
            if neighbor != parent:
                stack.append((neighbor, current))
    return count

def solve(N, M, A, E, Q, Queries):
    adj = defaultdict(list)
    for u, v in E:
        adj[u-1].append(v-1)
        adj[v-1].append(u-1)
   
    total_result = 0
    for query in Queries:
        if query[0] == 1:
            _, U, X = query
            U -= 1
            A[U] = X
        elif query[0] == 2:
   
            _, U, X = query
            U -= 1 
            mod_target = X % 3
            count = dfs_count(U, -1, adj, A, mod_target)
            total_result += count
   
    return total_result % (10**9 + 7)


Path queries โœ…
Infosys
#include<bits/stdc++.h>
using namespace std;
#define int long long

int findMax(vector<int>& a, vector<int>& height, int n, int i, int h, vector<vector<int>>& dp) {
    if (i >= n) return 0;
    if (dp[i][h] != -1) return dp[i][h];
   
    int vol = height[i] * a[i] * a[i];
    int inc = 0;
    int exc = 0;
   
    if (vol > h) {
        inc = vol + findMax(a, height, n, i + 1, vol, dp);
    }
    exc = findMax(a, height, n, i + 1, h, dp);
   
    return dp[i][h] = max(inc, exc);
}

int32_t main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) cin >> a[i];
    vector<int> height(n);
    for (int i = 0; i < n; i++) cin >> height[i];
   
    int maxVol = 0;
    for (int i = 0; i < n; i++) {
        maxVol = max(maxVol, height[i] * a[i] * a[i]);
    }

    // Using the maximum possible value of h to size the dp table
    vector<vector<int>> dp(n, vector<int>(maxVol + 1, -1));

    int ans = findMax(a, height, n, 0, 0, dp);
    cout << ans << endl;

    return 0;
}

Volume of cylinder โœ…
Infosys โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <bits/stdc++.h>
using namespace std;

void precomputeMaxMin(vector<vector<int>> &grid, vector<vector<vector<int>>> &maxVal, vector<vector<vector<int>>> &minVal, int N) {
    for (int size = 1; size <= N; size++) {
        for (int i = 0; i <= N - size; i++) {
            for (int j = 0; j <= N - size; j++) {
                if (size == 1) {
                    maxVal[i][j][size] = grid[i][j];
                    minVal[i][j][size] = grid[i][j];
                } else {
                    int prevMax = maxVal[i][j][size - 1];
                    int prevMin = minVal[i][j][size - 1];
                    for (int k = 0; k < size; k++) {
                        prevMax = max({prevMax, grid[i + size - 1][j + k], grid[i + k][j + size - 1]});
                        prevMin = min({prevMin, grid[i + size - 1][j + k], grid[i + k][j + size - 1]});
                    }
                    maxVal[i][j][size] = prevMax;
                    minVal[i][j][size] = prevMin;
                }
            }
        }
    }
}

int getBeauty(vector<vector<vector<int>>> &maxVal, vector<vector<vector<int>>> &minVal, int x, int y, int size) {
    return maxVal[x][y][size] - minVal[x][y][size];
}

int get_ans(vector<vector<int>> &grid, int N) {
    vector<vector<vector<int>>> maxVal(N, vector<vector<int>>(N, vector<int>(N + 1, 0)));
    vector<vector<vector<int>>> minVal(N, vector<vector<int>>(N, vector<int>(N + 1, 0)));

    precomputeMaxMin(grid, maxVal, minVal, N);

    int maxBeautySum = 0;

    for (int size1 = 1; size1 <= N; size1++) {
        for (int x1 = 0; x1 <= N - size1; x1++) {
            for (int y1 = 0; y1 <= N - size1; y1++) {
                int beauty1 = getBeauty(maxVal, minVal, x1, y1, size1);

                for (int size2 = 1; size2 <= N; size2++) {
                    for (int x2 = 0; x2 <= N - size2; x2++) {
                        for (int y2 = 0; y2 <= N - size2; y2++) {
                            if ((x1 + size1 <= x2 x2 + size2 <= x1) && (y1 + size1 <= y2 y2 + size2 <= y1)) {
                                int beauty2 = getBeauty(maxVal, minVal, x2, y2, size2);
                                maxBeautySum = max(maxBeautySum, beauty1 + beauty2);
                            }
                        }
                    }
                }
            }
        }
    }

    return maxBeautySum;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;

    vector<vector<int>> grid(N, vector<int>(N));
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            cin >> grid[i][j];
        }
    }

    int result = get_ans(grid, N);
    cout << result << endl;

    return 0;
}

Two square minimax
Infosys โœ…
โค1
#include <bits/stdc++.h>
using namespace std;

int maxTripletSum(int arr[], int n) {
    int maxA = INT_MIN, maxB = INT_MIN, maxC = INT_MIN;

    for (int i = 0; i < n; i++) {
        if (arr[i] > maxA) {
            maxC = maxB;
            maxB = maxA;
            maxA = arr[i];
        } else if (arr[i] > maxB) {
            maxC = maxB;
            maxB = arr[i];
        } else if (arr[i] > maxC) {
            maxC = arr[i];
        }
    }

    return (maxA + maxB + maxC);
}

int main() {
    int arr[] = {10, 20, 4, 1, 100, 70};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Maximum triplet sum is " << maxTripletSum(arr, n) << endl;
    return 0;
}

Maximum Triplet Sum โœ…
Infosys
#include <iostream>
#include <vector>
#include <numeric>
#define MOD 1000000007
using namespace std;
long long mod_inv(long long x, long long mod) {
    long long result = 1;
    long long power = mod - 2;
    while (power) {
        if (power % 2) {
            result = result * x % mod;
        }
        x = x * x % mod;
        power /= 2;
    }
    return result;
}

vector<long long> factorial(int n, long long mod) {
    vector<long long> fact(n + 1, 1);
    for (int i = 2; i <= n; ++i) {
        fact[i] = fact[i - 1] * i % mod;
    }
    return fact;
}
long long binomial_coeff(int n, int k, const vector<long long>& fact, long long mod) {
    if (k > n || k < 0) {
        return 0;
    }
    return fact[n] * mod_inv(fact[k], mod) % mod * mod_inv(fact[n - k], mod) % mod;
}
long long count_ways(int N, int K, const vector<int>& A) {
    int sum_A = accumulate(A.begin(), A.end(), 0);
    int M = K - sum_A;
    vector<long long> fact = factorial(M + N - 1, MOD);
    return binomial_coeff(M + N - 1, N - 1, fact, MOD);
}

int main() {
    int N, K;
    cin >> N >> K;
    vector<int> A(N);
    for (int i = 0; i < N; ++i) {
        cin >> A[i];
    }
    cout << count_ways(N, K, A) << endl;
    return 0;
}


DISTURBUTING BOOKS โœ…
Infosys
๐Ÿ‘1