Submission #1081090

#TimeUsernameProblemLanguageResultExecution timeMemory
1081090KiprasLongest Trip (IOI23_longesttrip)C++17
15 / 100
8 ms600 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; #include "longesttrip.h" bool are_connected(vector<int> a, vector<int> b); vector<int> longest_trip(int N, int D){ if(D==3) { vector<int> a; for(int i = 0; i < N; i++)a.push_back(i); return a; }else if(D==2) { deque<int> q; if(!are_connected({0}, {1})) { q.push_back(0); q.push_back(2); q.push_back(1); } else if(!are_connected({0}, {2})) { q.push_back(0); q.push_back(1); q.push_back(2); } else { q.push_back(1); q.push_back(0); q.push_back(2); } for(int i = 3; i < N; i++) { if(are_connected({q.front()}, {i})) q.push_front(i); else q.push_back(i); } vector<int> a; for(int i = 0; i < N; i++) { a.push_back(q.front()); q.pop_front(); } return a; } vector<int> a, b, c; a.push_back(0); b.push_back(1); for(int i = 2; i < N; i++) { if(b.size()>a.size())swap(a, b); c.push_back(i); if(are_connected({a.back()}, {c.back()})) { a.push_back(c.back()); c.clear(); }else if(are_connected({b.back()}, {c.back()})) { b.push_back(c.back()); c.clear(); }else{ for(auto i : b) { a.push_back(i); } b.clear(); b.push_back(c.back()); c.clear(); } } if(b.size()>a.size())swap(a, b); return a; }
#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...