This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |