๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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 static String decodePassword(String encodedPassword) {
        String reversedString = new StringBuilder(encodedPassword).reverse().toString();
       
        StringBuilder decodedPassword = new StringBuilder();
        int i = 0;
        while (i < reversedString.length()) {
            int asciiValue;
            if (i + 2 < reversedString.length()) {
                asciiValue = Integer.parseInt(reversedString.substring(i, i + 3));
                if (asciiValue >= 32 && asciiValue <= 122) {
                    i += 3;
                } else {
                    asciiValue = Integer.parseInt(reversedString.substring(i, i + 2));
                    i += 2;
                }
            } else {
                asciiValue = Integer.parseInt(reversedString.substring(i, i + 2));
                i += 2;
            }
            decodedPassword.append((char) asciiValue);
        }
       
        return decodedPassword.toString();
    }
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
class SGTree {
    vector<long long> seg;

public:
    SGTree(long long n) {
        seg.resize(4 * n, 0);
    }

    void build(long long ind, long long low, long long high, vector<long long>& arr) {
        if (low == high) {
            seg[ind] = arr[low];
            return;
        }

        long long mid = (low + high) >> 1;
        build(2 * ind + 1, low, mid, arr);
        build(2 * ind + 2, mid + 1, high, arr);
        seg[ind] = (seg[2 * ind + 1] + seg[2 * ind + 2]);
    }

    long long query(long long ind, long long low, long long high, long long l, long long r) {
        if (r < low || high < l) return 0;
        if (l <= low && high <= r) return seg[ind];

        long long mid = (low + high) >> 1;
        long long left = query(2 * ind + 1, low, mid, l, r);
        long long right = query(2 * ind + 2, mid + 1, high, l, r);
        return (left + right);
    }

    void update(long long ind, long long low, long long high, long long i, long long val) {
        if (low == high) {
            seg[ind] = val;
            return;
        }

        long long mid = (low + high) >> 1;
        if (i <= mid) update(2 * ind + 1, low, mid, i, val);
        else update(2 * ind + 2, mid + 1, high, i, val);
        seg[ind] = (seg[2 * ind + 1] + seg[2 * ind + 2]);
    }
};

vector<int> even_odd(int N, vector<long long> A) {
    vector<long long> val1(N);
    vector<long long> val2(N);
    vector<pair<long long, long long>> chota(N);
    vector<pair<long long, long long>> bada(N);

    for (long long i = 0; i < N; ++i) {
        chota[i] = { A[i], i };
        bada[i] = { A[i], i };
    }

    sort(chota.begin(), chota.end());
    sort(bada.begin(), bada.end(), greater<pair<long long, long long>>());

    SGTree sgt1(N);
    sgt1.update(0, 0, N - 1, chota[0].second, chota[0].first);

    for (long long i = 1; i < N; ++i) {
        long long val = sgt1.query(0, 0, N - 1, 0, chota[i].second);
        val1[chota[i].second] = val;
        sgt1.update(0, 0, N - 1, chota[i].second, chota[i].first);
    }

    SGTree sgt2(N);
    sgt2.update(0, 0, N - 1, bada[0].second, 1);

    for (long long i = 1; i < N; ++i) {
        long long val = sgt2.query(0, 0, N - 1, 0, bada[i].second);
        val2[bada[i].second] = val;
        sgt2.update(0, 0, N - 1, bada[i].second, 1);
    }

    vector<int> res(N);
    for (long long i = 0; i < N; ++i) {
        long long curr = val1[i] + (val2[i] * A[i]);
        res[i] = (curr % 2 == 0) ? 1 : 0;
    }
    return res;
}.

EVEN ODD SUM 
Sprinklr โœ…
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <climits>

using namespace std;

vector<long long> palindromes;

void generatePalindromes(int idx, string p, int flag);

long long calculate(string p) {
    string p1 = p;
    reverse(p1.begin(), p1.end());
    string fullPalindrome = p + p1;
    long long ans = 0;
    for (int i = fullPalindrome.length() - 1; i >= 0; i--) {
        if (fullPalindrome[i] == '1') {
            ans += (1LL << (fullPalindrome.length() - 1 - i));
        }
    }
    return ans;
}

long long calculateWithRemovedCenter(string p) {
    string p1 = p;
    reverse(p1.begin(), p1.end());
    if (!p1.empty())
        p1.erase(p1.begin());
    string fullPalindrome = p + p1;
    long long ans = 0;
    for (int i = fullPalindrome.length() - 1; i >= 0; i--) {
        if (fullPalindrome[i] == '1') {
            ans += (1LL << (fullPalindrome.length() - 1 - i));
        }
    }
    return ans;
}

void generatePalindromes(int idx, string p, int flag) {
    if (idx == 16) {
        palindromes.push_back(calculate(p));
        if (!p.empty()) {
            palindromes.push_back(calculateWithRemovedCenter(p));
        }
        return;
    }
    if (flag == 0) {
        generatePalindromes(idx + 1, p, 0);
        generatePalindromes(idx + 1, p + "1", 1);
    } else {
        generatePalindromes(idx + 1, p + "0", 1);
        generatePalindromes(idx + 1, p + "1", 1);
    }
}

long long solve(long long num) {
    auto it = lower_bound(palindromes.begin(), palindromes.end(), num);
    long long result = LLONG_MAX;
    if (it != palindromes.end()) {
        result = min(result, abs(*it - num));
    }
    if (it != palindromes.begin()) {
        result = min(result, abs(num - *(--it)));
    }
    return result;
}

int main() {
    generatePalindromes(0, "", 0);
    sort(palindromes.begin(), palindromes.end());

    long long num;
    cin >> num;
    cout << solve(num) << endl;

    return 0;
}
Binary palindrome number  Sprinklr โœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
import java.util.*;

public class MaxBinaryPath {
    static int N;
    static String S;
    static List<Integer>[] adj;
    static boolean[] visited;
    static String maxBinary = "";

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        N = sc.nextInt();

        S = sc.next();

        adj = new ArrayList[N + 1];
        for (int i = 1; i <= N; i++) {
            adj[i] = new ArrayList<>();
        }

        for (int i = 0; i < N - 1; i++) {
            int u = sc.nextInt();
            int v = sc.nextInt();
            adj[u].add(v);
            adj[v].add(u);
        }

        visited = new boolean[N + 1];

        for (int i = 1; i <= N; i++) {
            Arrays.fill(visited, false);
            dfs(i, "");
        }

        int maxLength = N; 
        System.out.println(String.format("%" + maxLength + "s", maxBinary).replace(' ', '0'));

        sc.close();
    }

    private static void dfs(int node, String path) {
        visited[node] = true;
        path += S.charAt(node - 1);

        if (path.length() == N && path.compareTo(maxBinary) > 0) {
            maxBinary = path;
        } else if (path.length() > N) {
            if (path.substring(0, N).compareTo(maxBinary) > 0) {
                maxBinary = path.substring(0, N);
            }
        }

        for (int neighbor : adj[node]) {
            if (!visited[neighbor]) {
                dfs(neighbor, path);
            }
        }

        visited[node] = false;
    }
}
๐Ÿ‘3
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int solution(vector<int> &A, vector<int> &B) {
    int N = A.size();
    vector<vector<int>> dp(2, vector<int>(N, 0));
    dp[0][0] = A[0];
    dp[1][0] = max(A[0], B[0]);
   
    for (int j = 1; j < N; ++j) {
        dp[0][j] = max(dp[0][j - 1], A[j]);
        dp[1][j] = min(max(dp[0][j], B[j]), max(dp[1][j - 1], B[j]));
    }
   
    return dp[1][N - 1];
} /// MS TASK 2