Submission #463679

#TimeUsernameProblemLanguageResultExecution timeMemory
463679tomsyd통행료 (IOI18_highway)C++17
5 / 100
235 ms262148 KiB
#include "highway.h"
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> adj;
vector<pair<int,int>> edges;

void dfs(int node, int prev){
	for (int i:adj[node]){
		if (i != prev){
			dfs(i,node);
			edges.emplace_back(node,i);
		}
	}
}

void find_pair(int N, vector<int> U, vector<int> V, int A, int B) {
	int M = U.size();
	edges.clear();
	adj = vector<vector<int>>(N);
	map<pair<int,int>,int> id;
	for (int i=0; i<M; ++i){
		adj[U[i]].emplace_back(V[i]);
		adj[V[i]].emplace_back(U[i]);
		id[make_pair(U[i],V[i])] = i;
		id[make_pair(V[i],U[i])] = i;
	}
	dfs(0,-1);
	vector<int> query;
	for (int i=0; i<M; ++i) query.emplace_back(1);
	int init = ask(query), crt = 0;
	for (int j=0; j<edges.size(); ++j){
		query[id[edges[j]]] = 0;
		if (ask(query) != init){
			crt = edges[j].second;
			break;
		}
		query[id[edges[j]]] = 1;
	}
	answer(crt,0);
}

Compilation message (stderr)

highway.cpp: In function 'void find_pair(int, std::vector<int>, std::vector<int>, int, int)':
highway.cpp:32:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |  for (int j=0; j<edges.size(); ++j){
      |                ~^~~~~~~~~~~~~
#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...