๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
void generateSubstrings(const string &s, int len, unordered_set<string> &substrings) {
    for (int i = 0; i <= s.size() - len; ++i) {
        substrings.insert(s.substr(i, len));
    }
}

string findMinimalString(const string &s) {
    unordered_set<string> substrings;
    for (int len = 1; ; ++len) {
        substrings.clear();
        generateSubstrings(s, len, substrings);
        string candidate(len, 'a');
        while (true) {
            if (substrings.find(candidate) == substrings.end()) {
                return candidate;
            }
            int pos = len - 1;
            while (pos >= 0 && candidate[pos] == 'z') {
                candidate[pos] = 'a';
                --pos;
            }
            if (pos < 0) break;
            ++candidate[pos];
        }
    }
}

int main() {
    string S;
    cin >> S;
    cout << findMinimalString(S) << endl;
    return 0;
}. 

// Minimal String

Infosys โœ…
๐Ÿ‘1
#include <iostream>
#include <vector>
using namespace std;
vector<bool> sieve(int max_val) {
    vector<bool> is_prime(max_val + 1, true);
    is_prime[0] = is_prime[1] = false;
    for (int i = 2; i * i <= max_val; ++i) {
        if (is_prime[i]) {
            for (int j = i * i; j <= max_val; j += i) {
                is_prime[j] = false;
            }
        }
    }
    return is_prime;
}

int main() {
    int N;
    cin >> N;

    vector<int> A(N);
    int max_val = 0;
    for (int i = 0; i < N; ++i) {
        cin >> A[i];
        if (A[i] > max_val) {
            max_val = A[i];
        }
    }

    vector<bool> is_prime = sieve(max_val);

    int prime_count = 0, composite_count = 0;
    for (int i = 0; i < N; ++i) {
        if (is_prime[A[i]]) {
            prime_count++;
        } else {
            composite_count++;
        }
    }

    int good_pairs = prime_count * composite_count;
    cout << good_pairs << endl;

    return 0;
}.  

find good pairs in array
Infosys โœ…
bool isp(string s){
    int n=s.length();
    for(int i=0;i<n/2;i++){
        if(s[i]!=s[n-i-1]){
            return false;
        }
    }
    return true;
}

int longestString(vector<string>v){
    unordered_map<string,int>mp;
    for(auto x:v){
        mp[x]++;
    }
    int ans=0;
    for(auto x:mp){
      if(x.second>1){
        int k=(x.second)/2;
          ans+=k*(x.first.length()); 
      }
      if(x.second%2!=0){
         mp[x.first]=1;
      }
      else
      mp.erase(x.first);
    }
    int maxi=0;
    for(auto x:mp){
        if(isp(x.first)){
            maxi=max(maxi,(int)x.first.length());
        }
    }
    return ans+maxi;
}

Max palindrome
Infosys โœ…
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define ll long long
vector<vector<ll>> solve(ll n,ll k,vector<ll>&a,vector<ll>&b)
{
    priority_queue<pair<double,pair<ll,ll>>> pq;
    for(int i=0;i<n;i++)
    {
        double x=a[i];
        double y=b[i];
        double dis=sqrt(x+y);
        pq.push({dis,{x,y}});
        if(pq.size()>k)  pq.pop();
    }
    vector<vector<ll>>ans;
    while(!pq.empty())
    {
        ans.push_back({pq.top().second.first,pq.top().second.second});
        pq.pop();
    }
    sort(begin(ans),end(ans));
    return ans;
}
signed main()
{       
        ll n,k; cin>>n>>k;
        vector<ll>a(n),b(n);
        for(ll i=0;i<n;i++) cin>>a[i];
        for(ll i=0;i<n;i++) cin>>b[i];
        vector<vector<ll>>ans=solve(n,k,a,b);
        for(auto it:ans) cout<<it[0]<<" "<<it[1]<<endl;
           
    return 0;
}


Closet k points to origin
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
void generateSubstrings(const string &s, int len, unordered_set<string> &substrings) {
    for (int i = 0; i <= s.size() - len; ++i) {
        substrings.insert(s.substr(i, len));
    }
}

string findMinimalString(const string &s) {
    unordered_set<string> substrings;
    for (int len = 1; ; ++len) {
        substrings.clear();
        generateSubstrings(s, len, substrings);
        string candidate(len, 'a');
        while (true) {
            if (substrings.find(candidate) == substrings.end()) {
                return candidate;
            }
            int pos = len - 1;
            while (pos >= 0 && candidate[pos] == 'z') {
                candidate[pos] = 'a';
                --pos;
            }
            if (pos < 0) break;
            ++candidate[pos];
        }
    }
}

int main() {
    string S;
    cin >> S;
    cout << findMinimalString(S) << endl;
    return 0;
}. 

Minimal string โœ…
#include <bits/stdc++.h>
#define int long long
using namespace std;
#define ll long long
ll solve(ll n,ll k,vector<ll>&a)
{  
    k++;
    unordered_map<ll,ll>freq;
    map<ll,vector<ll>>mpp;
    for (ll i=0;i<n;i++)
    {  
        freq[a[i]]++;
        mpp[freq[a[i]]].push_back(a[i]);
    }
    ll ans=0;
    for (auto it:mpp) ans+=it.second.size();
    return ans;
}
signed main()
{       
        ll n,k; cin>>n>>k;
        vector<ll>a(n);
        for(ll i=0;i<n;i++) cin>>a[i];
        cout<<solve(n,k,a);
           
    return 0;
}


Sequence split โœ…
const int MOD = 1000000007;

int subsetSumCount(const vector<int>& A, int L, int R, int K) {
    vector<int> dp(K + 1, 0);
    dp[0] = 1;

    for (int i = L; i <= R; ++i) {
        for (int j = K; j >= A[i]; --j) {
            dp[j] = (dp[j] + dp[j - A[i]]) % MOD;
        }
    }

    return dp[K];
}

int findXOR(int n, int Q, const vector<int>& A, const vector<vector<int>>& B ) {
    int result = 0;
    for (const auto& query : B ) {
        int L = query[0] - 1;
        int R = query[1] - 1;
        int K = query[2];
        int P = subsetSumCount(A, L, R, K);
        result ^= P;
    }
    return result;
}


//subarray subset sumโœ…
import java.util.*;

public class PrimeSumOptimal {
   
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[N];
        for (int i = 0; i < N; i++) {
            A[i] = sc.nextInt();
        }
        System.out.println(maxNonPrimeSumSubset(A, N));
        sc.close();
    }
    private static boolean[] isPrime;
    private static void sieve(int maxLimit) {
        isPrime = new boolean[maxLimit + 1];
        Arrays.fill(isPrime, true);
        isPrime[0] = isPrime[1] = false;
        for (int p = 2; p * p <= maxLimit; p++) {
            if (isPrime[p]) {
                for (int i = p * p; i <= maxLimit; i += p) {
                    isPrime[i] = false;
                }
            }
        }
    }
   
    private static boolean isPrime(int num) {
        return isPrime[num];
    }
    private static int maxNonPrimeSumSubset(int[] A, int N) {
        sieve(1000);
        int maxSubsetSize = 0;
        for (int bitmask = 0; bitmask < (1 << N); bitmask++) {
            List<Integer> subset = new ArrayList<>();
            for (int i = 0; i < N; i++) {
                if ((bitmask & (1 << i)) != 0) {
                    subset.add(A[i]);
                }
            }
            boolean validSubset = true;
            int subsetSize = subset.size();
            for (int i = 0; i < subsetSize && validSubset; i++) {
                for (int j = i + 1; j < subsetSize; j++) {
                    if (isPrime(subset.get(i) + subset.get(j))) {
                        validSubset = false;
                        break;
                    }
                }
            }
            if (validSubset) {
                maxSubsetSize = Math.max(maxSubsetSize, subsetSize);
            }
        }
       
        return maxSubsetSize;
    }
}. 

pair sum
๐Ÿ‘2