๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
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
void dfs(const vector<vector<int>>& con, int x, int f, int d, int& maxd, int& node) {
    if (d > maxd) {
        maxd = d;
        node = x;
    }
    for (int y : con[x]) {
        if (y != f) {
            dfs(con, y, x, d + 1, maxd, node);
        }
    }
}

int getMaxTime(int g_nodes, vector<int> g_from, vector<int> g_to) {
    const int n = g_nodes + 1;
    vector<vector<int>> con(n);
    for (int i = 0; i < g_to.size(); ++i) {
        con[g_from[i] - 1].push_back(g_to[i] - 1);
        con[g_to[i] - 1].push_back(g_from[i] - 1);
    }
    int r = 0, p = 0;
    dfs(con, 0, -1, 0, r, p);
    dfs(con, p, -1, 0, r, p);
    return r;
}

Distributed Data Serversโœ…
๐—–๐—ฆ ๐—”๐—น๐—ด๐—ผ ๐Ÿ’ป ๐ŸŒ ใ€Ž๐—–๐—ผ๐—บ๐—ฝ๐—ฒ๐˜๐—ถ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ดใ€
Photo
int fun(int node, int parent, vector<vector<int> >&adj, vector<int>&weight, int &maxi)
{
    int sum1 = 0;
    for(auto it:adj[node])
    {
        if(it != parent)
        {
            sum1 += fun(it,node,adj,weight,maxi);
        }
    }

    sum1 = max(sum1,weight[node-1]);
    maxi = max(maxi,sum1);
    return sum1;
}

int findMaximumSum(int tree_nodes, vector<int> tree_from, vector<int> tree_to, vector<int> weight)
{
    int n = tree_nodes;

    vector<vector<int> > adj(n+1);
    for(int i = 0; i<tree_from.size(); i++)
    {
        adj[tree_from[i]].push_back(tree_to[i]);
        adj[tree_to[i]].push_back(tree_from[i]);
    }

    int maxi = -1e9;
    fun(1,-1,adj,weight,maxi);
    return maxi;

}
vector<int> countVisibleTowers(vector<int>& height) {
  int n = height.size();
  vector<int> visible(n, 0);
  stack<int> s;

  for (int i = 0; i < n; ++i) {

    visible[i] += s.size();
    while (!s.empty() && height[s.top()] <= height[i]) {
      s.pop();
    }
    s.push(i);
  }

  while (!s.empty()) s.pop();


  for (int i = n - 1; i >= 0; --i) {

    visible[i] += s.size();
    while (!s.empty() && height[s.top()] <= height[i]) {
      s.pop();
    }
    s.push(i);
  }

  return visible;
}


Rippling โœ…
๐Ÿ‘Ž1
#include <iostream>
using namespace std;
const int MOD = 1000000007;
long countWays(int n) {
long long dp[100001][2] = {0};
dp[1][0] = 1;
   dp[1][1] = 0;
   if(n >= 2) {
       dp[2][0] = 1;
       dp[2][1] = 1;
   }
      for(int i = 3; i <= n; i++) {
     dp[i][0] = (dp[i-1][0] + dp[i-1][1]) % MOD;
    dp[i][1] = dp[i-2][0] % MOD;
   }
     return (dp[n][0] + dp[n][1]) % MOD;
}

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

Vimo โœ…
๐Ÿ‘1๐Ÿ‘Ž1
#include <bits/stdc++.h>
#define ll long long
using namespace std;
string mergePalindrome(string&a,string&b)
{  
    ll n=a.length();
    ll m=b.length();
    unordered_map<char,ll> m1,m2;
    for(char it:a) m1[it]++;
    for(char it:b) m2[it]++;
    string mid="",ans="";
    for (char i='a';i<='z';i++)
    {
        if(m1[i]%2 and m2[i]%2 and mid.length()<=1)  mid=string(2,i);
        if((m1[i]%2 or m2[i]%2) and mid.length()==0) mid=i;
        ans+=string((m1[i]/2+m2[i]/2),i);
    }
    string tt=ans;
    if (mid.length()==2)
    {  
        tt+=mid[0];
        ans+=mid[0];
        sort(begin(ans),end(ans));
        tt=ans+string(rbegin(ans),rend(ans));
    }
    else tt+=mid+string(rbegin(ans),rend(ans));
    return tt;
}
signed main()
{   
        string s,t; cin>>s>>t;
        cout<<solve(s,t);
    return 0;
}

Merging palindromes โœ…
๐Ÿ‘1