제출 #294590

#제출 시각아이디문제언어결과실행 시간메모리
294590SeDunion통행료 (IOI18_highway)C++14
컴파일 에러
0 ms0 KiB
#include "highway.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int M;
ll Ask (vector<int> v) {
	vector<int> w(M);
	for (int i : v) w[i] = 1;
	return ask (w);
}
ll Ask (vector<int> v) {
	vector<int> w(M, 1);
	for (int i : v) w[i] = 0;
	return ask (w);
}

const int N = 2e5;
vector<pair<int,int>> g[N], mb;

void dfs (int v, ll d, int p = -1) {
	for (auto [to, i] : g[v]) if (to != p) {
		if (d == 1) {
			mb.push_back ({to, i});
		} else {
			dfs (to, d-1, v);
		}
	}
}

void find_pair(int N, vector<int> U, vector<int> V, int A, int B) {
	M = U.size();
	for (int i = 0 ; i < M ; ++ i) {
		g[U[i]].push_back ({V[i], i});
		g[V[i]].push_back ({U[i], i});
	}
	ll dist = Ask ({}) / A;
	dfs (0, dist);
	if (mb.empty()) while(1);
	int l = 0, r = int(mb.size()) - 1;
	while (l < r) {
		int m = (l + r) >> 1;
		vector<int>now;
		for (int i = 0 ; i <= m ; ++ i) {
			now.push_back (mb[i].second);
		}
		if (Ask(now) > dist) {
			assert (rAsk(now) == dist);
			r = m;
		} else {
			assert (rAsk(now) > dist);
			l = m + 1;
		}
	}
	answer (0, mb[r].first);
}

컴파일 시 표준 에러 (stderr) 메시지

highway.cpp:12:4: error: redefinition of 'll Ask(std::vector<int>)'
   12 | ll Ask (vector<int> v) {
      |    ^~~
highway.cpp:7:4: note: 'll Ask(std::vector<int>)' previously defined here
    7 | ll Ask (vector<int> v) {
      |    ^~~
highway.cpp: In function 'void dfs(int, ll, int)':
highway.cpp:22:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   22 |  for (auto [to, i] : g[v]) if (to != p) {
      |            ^
In file included from /usr/include/c++/9/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:33,
                 from highway.cpp:2:
highway.cpp: In function 'void find_pair(int, std::vector<int>, std::vector<int>, int, int)':
highway.cpp:48:12: error: 'rAsk' was not declared in this scope; did you mean 'Ask'?
   48 |    assert (rAsk(now) == dist);
      |            ^~~~
highway.cpp:51:12: error: 'rAsk' was not declared in this scope; did you mean 'Ask'?
   51 |    assert (rAsk(now) > dist);
      |            ^~~~