๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
public int candy(int[] ratings) {
    final int n = ratings.length;

    int ans = 0;
    int[] l = new int[n];
    int[] r = new int[n];
    Arrays.fill(l, 1);
    Arrays.fill(r, 1);

    for (int i = 1; i < n; ++i)
      if (ratings[i] > ratings[i - 1])
        l[i] = l[i - 1] + 1;

    for (int i = n - 2; i >= 0; --i)
      if (ratings[i] > ratings[i + 1])
        r[i] = r[i + 1] + 1;

    for (int i = 0; i < n; ++i)
      ans += Math.max(l[i], r[i]);

    return ans;
  }


//MIni orange 3rd
#include <bits/stdc++.h>
using namespace std;

typedef long long lli;

const lli mod = 1000007;

const int mx = 1000000;
const int S = sqrt(mx) + 1;
int prime[mx], np = 0;
bool isnp[mx + 10];

// Sieve of Eratosthenes to find all primes up to mx
void siv(void) {
    int i, j, k;
    np = 0;
    isnp[1] = isnp[0] = true;
    prime[np++] = 2;
    for (i = 3; i <= S; i += 2)
        if (!isnp[i])
            for (prime[np++] = i, j = i * i, k = (i << 1); j <= mx; j += k)
                isnp[j] = true;
    for (; i <= mx; i += 2)
        if (!isnp[i])
            prime[np++] = i;
}

// Function to find the power of prime p in n!
lli pinf(int p, int n) {
    int ans = 0;
    while (n) {
        ans += (n / p);
        n /= p;
    }
    return ans;
}

// Function to find the number of divisors of (n!)^2
lli ndivfact2(int n) {
    int i = 0;
    lli ans = 1;
    while (prime[i] <= n) {
        ans *= (pinf(prime[i], n) * 2) + 1;
        ans %= mod;
        i++;
    }
    return ans;
}

int main() {
    siv();
    int n;
    cin >> n;
    cout << ndivfact2(n) << endl;
    return 0;
}

Modulo arithmetic equation
Estee advisorโœ…
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int minTrucks(vector<int>& boulders, int truckCapacity) {
    vector<int> b = boulders;
    int c = truckCapacity;
    sort(b.begin(), b.end());
    int l = 0, r = b.size() - 1, t = 0;
    while (l <= r) {
        if (b[l] + b[r] <= c) {
            l++;
        }
        r--;
        t++;
    }
    return t;
}
๐Ÿ‘3
#include <vector>
#include <utility>
#include <map>
#include <algorithm>

int deleteProducts(vector<int> ids, int m) {
    vector<pair<int, int>> vp;
    map<int, int> mp;

    for (int x : ids) {
        mp[x]++;
    }

    for (auto it : mp) {
        vp.push_back({it.second, it.first});
    }

    sort(vp.begin(), vp.end());

    int cnt = mp.size();
    for (auto it : vp) {
        if (m >= it.first) {
            m -= it.first;
            cnt--;
        } else {
            break;
        }
    }

    return cnt;
}.

SMART SALE
๐Ÿ‘1
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <iostream>
#include <vector>
#define MOD 1000000007
using namespace std;
vector<long long> precompute(int max_n) {
    vector<long long> dp(max_n + 1, 0);
    dp[2] = 1;
    if (max_n > 2) dp[3] = 2;
    for (int n = 4; n <= max_n; ++n) {
        dp[n] = (dp[n-1] + dp[n-2]) % MOD;
        dp[n] = (dp[n] + (n - 2)) % MOD;
    }
   
    return dp;
}
int main() {
    int T;
    cin >> T;
    vector<int> queries(T);
    int max_n = 0;
   
    for (int i = 0; i < T; ++i) {
        cin >> queries[i];
        if (queries[i] > max_n) {
            max_n = queries[i];
        }
    }
    vector<long long> dp = precompute(max_n);
    for (int i = 0; i < T; ++i) {
        cout << dp[queries[i]] << endl;
    }
    return 0;
}
#include <iostream> 
#include <vector>

using namespace std;

void printPascalTriangle(int numRows) {
    if (numRows < 1 || numRows > 30) {
        cout << "Invalid number of rows. Please enter a value between 1 and 30." << endl;
        return;
    }

    vector<vector<int>> triangle(numRows);

    for (int i = 0; i < numRows; i++) {
        triangle[i].resize(i + 1);
        triangle[i][0] = triangle[i][i] = 1;

        for (int j = 1; j < i; j++) {
            triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
        }
    }
    for (int i = 0; i < numRows; i++) {
        for (int j = 0; j < i; j++) {
            cout << triangle[i][j] << " ";
        }
        cout << "1" << endl;
    }
}

int main() {
    int numRows;
    cout << "Enter the number of rows for the Pascal Triangle (1-30): ";
    cin >> numRows;
    printPascalTriangle(numRows);
    return 0;
}


Pattern Ques
๐Ÿ‘1
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <iostream>
#include <vector>
#include <unordered_set>
#include <algorithm>
using namespace std;
vector<int> applyRule(const vector<int>& P) {
    int n = P.size();
    vector<int> newP(n);
    for (int i = 0; i < n; ++i) {
        newP[i] = P[P[i] - 1];
    }
    return newP;
}
bool isStable(const vector<int>& P) {
    for (int i = 0; i < P.size(); ++i) {
        if (P[i] != i + 1) return false;
    }
    return true;
}
int solve(vector<int>& P) {
    unordered_set<string> seen;
    int time = 0;
    while (true) {
        if (isStable(P)) return time;
        string key = "";
        for (int x : P) key += to_string(x) + ",";
        if (seen.count(key)) return -1;
        seen.insert(key);
        P = applyRule(P);
        ++time;
    }
    return -1;
}
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <vector>
#include <unordered_map>
#include <iostream>

using namespace std;

int getMinTransactions(int n, vector<vector<int>>& debt) {
    unordered_map<int, int> balance
    for (const auto& d : debt) {
        balance[d[0]] -= d[2];
        balance[d[1]] += d[2];
    }
   
    vector<int> transactions;
    for (const auto& entry : balance) {
        if (entry.second != 0) {
            transactions.push_back(entry.second);
        }
    }

    int count = 0;
    int i = 0, j = transactions.size() - 1;
    while (i < j) {
        if (transactions[i] + transactions[j] == 0) {
            count++;
            i++;
            j--;
        } else if (transactions[i] + transactions[j] > 0) {
            transactions[i] += transactions[j];
            j--;
            count++;
        } else {
            transactions[j] += transactions[i];
            i++;
            count++;
        }
    }
    return count;
}

Meesho โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
const int MOD = 1e9 + 7;
const int MAXN = 400;
int grid[MAXN][MAXN];
int dp[MAXN][MAXN][2];
int n, m;
int dfs(int row, int col, bool doubled) {
    if (row >= n || col >= m) return 0;
    if (dp[row][col][doubled] != -1) return dp[row][col][doubled];
   
    int qr = grid[row][col];
    int maxQR = qr + max(dfs(row + 1, col, doubled), dfs(row, col + 1, doubled));

    if (!doubled) {
        maxQR = max(maxQR, qr * 2 + max(dfs(row + 1, col, true), dfs(row, col + 1, true)));
    }
    return dp[row][col][doubled] = maxQR;
}
int main() {
    cin >> n >> m;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            cin >> grid[i][j];
        }
    }
    memset(dp, -1, sizeof(dp));
    int result = dfs(0, 0, false);
    cout << result << endl;
   
    return 0;
}.  

//PHONE PE 2 โœ…
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            String str = sc.next();
            String s = "";
            HashMap<Character, Character> map = new HashMap<>();
            int c = 0;

            for (int i = 0; i < n; i++) {
                if (map.containsKey(str.charAt(i))) {
                    s += map.get(str.charAt(i));
                } else {
                    s += (char) (c + '0');
                    map.put(str.charAt(i), (char) (c + '0'));
                    c++;
                }
            }

            int ans1=helper(s, 1, "0", map.size());
            int ans2=helper(s, 1, "1", map.size());
            System.out.println(ans1+ans2);
    }

    public static int helper(String s, int i, String tmp, int val) {
        if (i == val) {
            if (check(s, tmp)) return 1;
            return 0;
        }
        int ans=0;
        ans+=helper(s, i + 1, tmp + "0", val);
        ans+=helper(s, i + 1, tmp + "1", val);
        return ans;
    }

    public static boolean check(String a, String b) {
        int n = a.length();
        int tmp = 0;
        for (int i = 0; i < n; i++) {
            int c = a.charAt(i) - '0';
            tmp += (b.charAt(c) == '0') ? -1 : 1;
            if (tmp < 0) return false;
        }
        return (tmp == 0);
    }
}
VALID SEQUENCES IVP
Phone Pay 3rd -> #include "bits/stdc++.h"
using namespace std;
const int N=2e5+10;
vector<bool> vis(N);
vector<vector<int>>v(N);
// vector<int>sub(N);

void bfs(int n, vector<int>&par){
    par[n]=n;
    vis[n]=1;
    queue<int>q;
    q.push(n);
   
    while(q.size()){
        auto curr=q.front();
        q.pop();
        for(auto x:v[curr]){
            if(!vis[x]){
                vis[x]=1;
                q.push(x);
                par[x]=curr;
            }
        }
    }
}

int main(){
   
    int t;
    cin>>t;
   
    while(t--){
       
        int n;
        cin>>n;
       
        for(int i=0;i<=n;i++){
            v[i].clear();
            vis[i]=0;
        }
       
        int m;
        cin>>m;
       
        int a,b,c;
        cin>>a>>b>>c;
       
        vector<int>costs(m);
        for(int i=0;i<m;i++){
            cin>>costs[i];
        }
       
        for(int i=0;i<m;i++){
            int x,y;
            cin>>x>>y;
            v[x].push_back(y);
            v[y].push_back(x);
        }
       
        sort(costs.begin(),costs.end());
       
        vis.assign(n+1,0);
        vector<int>par1(n+1,0);
        bfs(a,par1);
       
        if(!par1[a] !par1[b] !par1[c]){
            cout<<-1<<endl;
            continue;
        }
       
        int val=b;
        vector<vector<int>>cnt(n+1,vector<int>(n+1,0));
       
        while(val!=a){
            int ik=par1[val];
            cnt[ik][val]++;
            cnt[val][ik]++;
            val=ik;
        }
       
        vis.assign(n+1,0);
        vector<int>par2(n+1,0);
        bfs(b,par2);
       
        val=c;
        while(val!=b){
            int ik=par2[val];
            cnt[ik][val]++;
            cnt[val][ik]++;
            val=ik;
        }
       
        vector<int>app;
       
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                if(cnt[i][j]){
                    app.push_back(cnt[i][j]);
                }
            }
        }
       
        sort(app.rbegin(),app.rend());
       
        int ans=0;
       
        for(int i=0;i<app.size();i++){
            ans+=app[i]*costs[i];
        }
       
        cout<<ans<<endl;
       
    }
   
   
    return 0;
}
๐Ÿ‘2
#include <iostream>
#include <cstring>
using namespace std;

typedef long long ll;
const int mod = 1e9 + 7;
int dp[1000001][2][4];

ll F(int i, int ok, int zlen) {
    if (i < 0 || ok > 1) return (ok + (zlen == 2)) % mod;
    if (dp[i][ok][zlen] != -1) return dp[i][ok][zlen];
   
    ll z = F(i - 1, ok, min(3, zlen + 1));
    ll nz = F(i - 1, ok + (zlen == 2), 0);
   
    return dp[i][ok][zlen] = (nz + z) % mod;
}

int main() {
    memset(dp, -1, sizeof(dp));
   
    int T;
    cin >> T;
    while (T--) {
        int N;
        cin >> N;
        cout << F(N - 1, 0, 0) << endl;
    }
   
    return 0;
}.

LIGHT PHONEPE
function getSumOfFactors(num) {
    let sum = 0;
    for (let i = 1; i <= Math.sqrt(num); i++) {
        if (num % i === 0) {
            sum += i;
            if (i !== num / i) {
                sum += num / i;
            }
        }
    }
    return sum;
}

function maxSubsetSum(arr) {
    return arr.map(num => getSumOfFactors(num));
}

Factset
Largest Subset Sum โœ