Submission #1286830

#TimeUsernameProblemLanguageResultExecution timeMemory
1286830eri16Migrations (IOI25_migrations)C++20
0 / 100
30 ms1000 KiB
#include <bits/stdc++.h> using namespace std; vector <int> v[20001]; int T1,J1,T2,J2; pair<int,int> bfs(int node, int mx){ int n=mx; vector<int> dist(n, -1); queue<int> q; dist[node]=0; q.push(node); int f=node; while (!q.empty()) { int t=q.front(); q.pop(); for (int i=0; i<v[t].size(); i++) { int to=v[t][i]; if (dist[to]==-1) { dist[to]=dist[t]+1; q.push(to); if (dist[to]>dist[f]) f=to; }}} return {f,dist[f]}; } int send_message(int N, int i, int Pi){ if (i<N-3){ v[i].push_back(Pi); v[Pi].push_back(i); return 0; } else if(i==N-3){ v[i].push_back(Pi); v[Pi].push_back(i); pair <int,int> p; p=bfs(0,N-2); T1=p.first; J1=p.second; return (T1/101); } else if(i==N-2){ v[i].push_back(Pi); v[Pi].push_back(i); pair <int,int> p; p=bfs(0,N-1); T2=p.first; J2=p.second; return (T2%101); } else{ pair<int,int> p; //int len=J2; v[i].push_back(Pi); v[Pi].push_back(i); p=bfs(0,N); T1=p.second; if (J1>=T1){ return 0; } else if(J2>=T1){ return 1; } else{ return 2; } } } std::pair<int,int> longest_path(std::vector<int> S){ if (S[S.size()-1]==0){ return {0,S[S.size()-4]*101+S[S.size()-3]}; } else if (S[S.size()-1]==1){ return {0,S.size()-2}; } else if (S[S.size()-1]==2){ return {0,S.size()-1}; } else{ return {0,-1}; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...