제출 #1255050

#제출 시각아이디문제언어결과실행 시간메모리
1255050NemanjaSo2005이주 (IOI25_migrations)C++20
0 / 100
30 ms1088 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;
         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) {
   vector<int> SS;
   SS.push_back(0);
   for(int x:S)
      SS.push_back(x);
   S=SS;


   for(int i=kraj;i>=1;i--)
      if(S[i]==4)
         return {0,i+1};
   int ans=0;
   for(int i=kraj;i>poc;i--)
      ans=ans*2+S[i]-1;
   return {0,ans};
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...