Submission #1255056

#TimeUsernameProblemLanguageResultExecution timeMemory
1255056NemanjaSo2005Migrations (IOI25_migrations)C++20
30 / 100
32 ms1720 KiB
#include "migrations.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e4+5;
int n=1e4;
vector<int> stablo[maxn];
int salji[maxn];
pair<int,int> dfs(int gde,int pret,int d){
   pair<int,int> ans={d,gde};
   for(int x:stablo[gde])
      if(x!=pret)
         ans=max(ans,dfs(x,gde,d+1));
   return ans;
}
int poc=9999-14,kraj=9999;
int send_message(int N, int idx, int par) {
   stablo[par].push_back(idx);
   if(idx<poc)
      return 0;
   if(idx==poc){
      int ko=dfs(0,0,0).second;
      for(int i=poc+1;i<=kraj;i++){
         salji[i]=ko%2+1;
         ko/=2;
      }
      return 0;
   }
   if(dfs(0,0,0).second==idx)
      return 4;
   return salji[idx];
}

std::pair<int, int> longest_path(std::vector<int> S) {

   for(int i=kraj;i>=1;i--)
      if(S[i]==4)
         return {0,i};
   int ans=0;
   for(int i=kraj;i>poc;i--){
      ans=ans*2+S[i]-1;
    //  cout<<ans<<" "<<S[i]<<endl;
   }
   return {0,ans};
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...