Submission #961280

#TimeUsernameProblemLanguageResultExecution timeMemory
961280Prieved1Longest Trip (IOI23_longesttrip)C++17
5 / 100
9 ms856 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; int cnt=0; map<int, map<int,int>> mp; bool query1(int a, int b) { if(mp[a][b]!=0)return mp[a][b]-1; int c=are_connected({a}, {b}); mp[a][b]=c+1; mp[b][a]=c+1; cnt++; return c; } vector<int> longest_trip(int N, int D) { cnt=0; mp.clear(); srand(time(NULL)); vector<int> t[2]; t[0].push_back(0); for(int i = 1;i<N;i++) { if(t[1].size() > t[0].size())swap(t[0], t[1]); if(t[1].size()) { if(rand()%2)swap(t[0], t[1]); } int c=query1(t[0].back(), i); if(!c) { t[1].push_back(i); } else { t[0].push_back(i); if(t[1].size()) { c=query1(t[1].back(), i); if(c) { while(t[1].size()) { t[0].push_back(t[1].back()); t[1].pop_back(); } } } } } assert(cnt<=400); if(t[0].size()<t[1].size())swap(t[0], t[1]); return t[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...