Submission #800791

#TimeUsernameProblemLanguageResultExecution timeMemory
800791biankHighway Tolls (IOI18_highway)C++14
5 / 100
188 ms18264 KiB
#include "highway.h"
#include <bits/stdc++.h>

using namespace std;

#define SIZE(x) (int)x.size()
#define ll long long

vector <vector <int>> adj;
map <pair <int, int>, int> m;
vector <int> h;

int DFS(ll dist, int u = 0, int p = -1) {
	for (int v:adj[u]) {
		if (v == p) {
			continue;
		}
		h[m[{u,v}]] = 1;
		bool b = ask(h) > dist;
		h[m[{u,v}]] = 0;
		if (b) {
			return DFS(dist, v, u);
		}
	}
	return u;
}

void find_pair(int N, vector<int> U, vector<int> V, int A, int B) {
	if (A > B) {
		return;
	}
  adj.resize(N);
  int M = SIZE(U);
  h.assign(M, 0);
  for (int i=0; i<M; i++) {
	  adj[V[i]].push_back(U[i]);
	  adj[U[i]].push_back(V[i]);
	  m[{V[i], U[i]}] = i;
	  m[{U[i], V[i]}] = i;
  }
  answer(0, DFS(ask(h)));
}
#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...