๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
9.57K subscribers
5.59K photos
3 videos
95 files
10K 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 getMinTotalExtraTime(s: str, k: int) -> int:
    def extraTime(substr):
        cc = [0] * 26
        for char in substr:
            cc[ord(char) - ord('a')] += 1
        return sum(count * (count - 1) // 2 for count in cc if count > 1)

    n = len(s)
    minExtraTime = extraTime(s)

    for i in range(1, n):
        for j in range(i, n + 1):
            div1 = s[:i]
            div2 = s[i:j]
            div3 = s[j:]
           
            totalExtraTime = extraTime(div1) + k
            if div2:
                totalExtraTime += extraTime(div2) + k
            if div3:
                totalExtraTime += extraTime(div3)
           
            minExtraTime = min(minExtraTime, totalExtraTime)

    return minExtraTime


Extra Time Reduction โœ…
long long  Rearrangestudents(vector<int>& a, vector<int>& b) {
        map<int,int>mp;
        int n=a.size();
        int mini=INT_MAX;
        for(int i=0;i<n;i++){
            mp[a[i]]++;
            mp[b[i]]--;
            mini=min(mini,a[i]);
            mini=min(mini,b[i]);
        }
        vector<int>x;
        for(auto it:mp){
            int t=it.second;
            if(t%2==1)return -1;
            else{
                for(int i=0;i<abs(t)/2;i++){
                    x.push_back(it.first);
                }
            }
        }
        long long ans=0;
        int m=x.size();
        for(int i=0;i<m/2;i++){
            ans+=min(x[i],2*mini);
        }
        return ans;
    }

Atlassian
Rearrangestudentsโœ…
๐Ÿ‘1
def maximize_arithmetic_means(arr, k):
    n = len(arr)
    prefix_sum = [0] * (n + 1)
   
    for i in range(1, n + 1):
        prefix_sum[i] = prefix_sum[i-1] + arr[i-1]
   
    dp = [0] * (n + 1)

    for j in range(1, k + 1):
        new_dp = [0] * (n + 1)
        for i in range(j, n + 1):
            if j == 1:
                new_dp[i] = prefix_sum[i] / i
            else:
                max_val = 0
                for m in range(j - 1, i):
                    current_mean = (prefix_sum[i] - prefix_sum[m]) / (i - m)
                    max_val = max(max_val, dp[m] + current_mean)
                new_dp[i] = max_val
        dp = new_dp

    return int(dp[n])
#include <bits/stdc++.h>
using namespace std;
#define int long long

int solve(int m, vector<string> vs) {
    int ans = 0;
   
    if (m == 0) {
        for (int i = 0; i < vs.size(); i++) {
            ans += vs[i].length();
        }
        return ans % 2 == 0;
    }
   
    for (int i = 0; i < vs.size(); i++) {
        bool flag = false;
       
        for (int j = 0; j < vs[i].size(); j++) {
            if ((vs[i][j] - 'a') % 2 != 0) {
                flag = true;
                break;
            }
        }
       
        if (!flag) {
            ans++;
        }
    }
   
    return ans % 2 == 0;
}

void sole(int t, vector<string> vs) {
    if (solve(t, vs) != 0) {
        cout << "EVEN" << endl;
    } else {
        cout << "ODD" << endl;
    }
}


Atlassian โœ…
(intern)
def isEvenOdd(m, strings):
    if m == 0:
        return sum(len(s) for s in strings) % 2 == 0
   
    evenCount = sum(all((ord(c) - ord('a')) % 2 == 0 for c in s) for s in strings)
    return evenCount % 2 == 0


OddEven
Atlassian โœ…
long long mincost(vector<int> &pods, vector<int> &cost) {  
    map<int, multiset<int>> mp; 

    for (int i = 0; i < pods.size(); i++) { 
        mp[pods[i]].insert(cost[i]); 
    } 

    long ans = 0; 
    long curr = (*mp.begin()).first; 
    long sm = 0; 
    multiset<int> se; 

    while (true) { 
        if (se.size() == 0) { 
            if (mp.lower_bound(curr) == mp.end()) break; 
            curr = (*mp.lower_bound(curr)).first; 
        } 

        if (mp.find(curr) != mp.end()) 
            for (auto &x : mp[curr]) { 
                se.insert(x); 
                sm += x; 
            } 

        auto it = se.end(); 
        it--; 
        sm -= *it; 
        ans += sm; 
        se.erase(it); 
        curr++; 
    } 

    return ans; 
}


mincost โœ…
Atlassian
๐Ÿ‘1
def calculateEvenOdd(m, s):
    ts = 0
    MOD = 2 
    for string in s:
        sv = 1
        for char in string:
            sv *= pow(ord(char), m, MOD)
            sv %= MOD 
        ts += sv
        ts %= MOD 

    return 'EVEN' if ts % 2 == 0 else 'ODD'

Atlassian โœ…
String
def solution(N, K, money):
    mf = 0
   
    for L in range(N):
        for R in range(L, N):
            ss = sum(money[L:R+1])
            sl = R - L + 1
            X = K * sl - ss
           
            if -10**9 <= X <= 10**9:
                f = sum(1 for m in money if m + X == K)
                mf = max(mf, f)
   
    return mf


Followers โœ…
Oyo
๐Ÿ‘1
#include<bits/stdc++.h>
using namespace std;

int getswaptime(string &a)
{
int i = 0, n = a.length();
int curr=0, prev=0;
int ones = 0;

while(i<n)
{
   if(a[i]=='1')
   {
       prev = i;
       curr = i;
       i++;
       ones++;
       break;
   }
   i++;
}

while(i<n)
{
   
    if(a[i]=='1')
    {
       if(i-ones)
        curr = max(prev+1,i-ones);

        ones++;
    }

    i++;
    prev = curr;
}

return curr;
}

Prade in Hackerland โœ…
๐Ÿ‘2
`c++
#include <bits/stdc++.h>
using namespace std;
struct SegmentTree {
    set<int> dividers;  and y)
    multiset<int> lengths;
    SegmentTree(int full_length) {
        dividers.insert(0);
        dividers.insert(full_length);
        lengths.insert(full_length);
    }
    void add_divider(int pos) {
        if (dividers.find(pos) != dividers.end()) return;
        auto it = dividers.lower_bound(pos);
        int right = *it;
        it--;
        int left = *it;
        lengths.erase(lengths.find(right - left));
        lengths.insert(pos - left);
        lengths.insert(right - pos);
        dividers.insert(pos);
    }
    int get_max_length() {
        return *lengths.rbegin();
    }
};
vector<int> solve(int n, int m, int q, vector<vector<int>> queries) {
    SegmentTree x_tree(n);
    SegmentTree y_tree(m);
    vector<int> result;
    for (int i = 0; i < q; i++) {
        int type = queries[i][0];
        int pos = queries[i][1];
        if (type == 1) {
            x_tree.add_divider(pos);
        } else if (type == 2) {
            y_tree.add_divider(pos);
        }
        int max_x = x_tree.get_max_length();
        int max_y = y_tree.get_max_length();
        result.push_back(max_x * max_y);
    }
    return result;
}
int main() {
    int n, m, q;
    cin >> n >> m >> q;
    vector<vector<int>> queries(q, vector<int>(2));
    for (int i = 0; i < q; i++) {
        cin >> queries[i][0] >> queries[i][1];
    }
    vector<int> result = solve(n, m, q, queries);
    for (int area : result) {
        cout << area << " ";
    }
    cout << endl;
    return 0;
}

Largest text area
Ge Vernova โœ…
def getMinDecrement(a, m):
    l, r = 1, max(a)
    while l < r:
        x = (l + r) // 2
        if sum((i + x - 1) // x for i in a) <= m:
            r = x
        else:
            l = x + 1
    return l


Decrement Operations โœ…
DE Shaw