제출 #1274358

#제출 시각아이디문제언어결과실행 시간메모리
1274358nicolo_010통행료 (IOI18_highway)C++20
5 / 100
7 ms628 KiB
#include <bits/stdc++.h>
#include "highway.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;

vector<vector<int>> adj;

int last;

void dfs(int n, int p=-1) {
	last = n;
	for (auto x : adj[n]) {
		if (x==p) continue;
		dfs(x, n);
	}
}

void find_pair(int n, vector<int> U, vector<int> V, int A, int B) {
	int m = U.size();
	vector<int> edges;
	vector<int> query(m, 0);
	ll w = ask(query);
	adj.resize(n);
	for (int i=0; i<m; i++) {
		query[i] = 1;
		ll w2 = ask(query);
		if (w2 == w-A+B) {
			edges.push_back(i);
		}
		query[i] = 0;
	}
	for (auto x : edges) {
		int a = U[x];
		int b = V[x];
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
	last = 0;
	dfs(0);
	answer(0, last);
}
#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...