Submission #292309

#TimeUsernameProblemLanguageResultExecution timeMemory
292309kimbj0709Highway Tolls (IOI18_highway)C++14
5 / 100
15 ms888 KiB
#include "highway.h" #include<bits/stdc++.h> using namespace std; #define maxn 1050 #define f first #define s second int a,b; int dist = 0; //long long ask(const std::vector<int> &w); //void answer(int s, int t); vector<vector<pair<int,int> > > adj(maxn); vector<int> visited; int cnt = 0; void dfs(int node,int parent,int dis){ if(dis==dist){ if(ask(visited)==cnt*b){ assert(dist==cnt); // cout << node << "--\n"; answer(0,node); exit(0); } } for(auto k:adj[node]){ if(k.f!=parent){ visited[k.s] = 1; cnt++; dfs(k.f,node,dis+1); visited[k.s] = 0; cnt--; } } } void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) { int M = U.size(); for(int i=0;i<M;i++){ adj[U[i]].push_back({V[i],i}); adj[V[i]].push_back({U[i],i}); } for(int i=0;i<M;i++){ visited.push_back(0); } a = A; b = B; assert(ask(visited)%a==0); dist = ask(visited)/a; dfs(0,-1,0); assert(0==1); }
#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...