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 ll long long
#define pb push_back
typedef pair<ll,ll> pii;
const ll MAXN = 2e5+5;
const ll INF = 1e9+7;
int M,k;//k = menor distancia
vector<vector<int>>adj(MAXN);
map<pair<int,int>,int>mapi;
bool stop=false;
void dfs(ll node, ll p){if(stop)return;
bool ok=false;
for(auto u:adj[node]){if(stop)return;
if(u==p)continue;
std::vector<int> w(M);
for(ll i=0;i<M;i++)w[i]=0;
w[ mapi[{node,u}] ]=1;
if(ask(w)>k){
dfs(u,node);
ok=true;
}if(stop)return;
}
if(ok==false){
answer(0,node);
stop=true;
}
}
void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) {
M = U.size();
std::vector<int> w(M);
for(ll i=0;i<M;i++)w[i]=0;
k = ask(w);
for(ll i=0;i<N;i++){
adj[U[i]].pb(V[i]);
adj[V[i]].pb(U[i]);
mapi[ {U[i],V[i]} ]=i;
mapi[ {V[i],U[i]} ]=i;
}
dfs(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... |