Submission #348580

#TimeUsernameProblemLanguageResultExecution timeMemory
348580amunduzbaevHighway Tolls (IOI18_highway)C++14
0 / 100
15 ms3308 KiB
#include "highway.h" #include <bits/stdc++.h> #ifndef EVAL #include "grader.cpp" #endif using namespace std; #define pb push_back #define sz(x) (int)x.size() #define ff first #define ss second const int NN = 1e5+5; vector<pair<int, int>> edges[NN]; vector<int> tr; int ans; int dfs(int u, int p){ if(sz(edges[u]) == 1){ return u; } for(auto x:edges[u]){ if(x.ff == p) continue; tr[x.ss] = 1; int ver = ask(tr); if(ver == ans){ tr[x.ss] = 0; continue; } else{ tr[x.ss] = 0; return dfs(x.ff, u); } } return 0; } void find_pair(int N, vector<int> U, vector<int> V, int A, int B) { for(int i=0;i<sz(V);i++){ edges[V[i]].pb({U[i], i}); edges[U[i]].pb({V[i], i}); } tr.resize(sz(V), 0); ans = ask(tr); int res = dfs(0, -1); //cout<<0<<" "<<res<<"\n"; answer(0, res); } /* 7 6 1 2 0 5 0 1 0 4 1 2 1 3 4 5 4 6 */
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...