Submission #1053277

# Submission time Handle Problem Language Result Execution time Memory
1053277 2024-08-11T10:13:25 Z vincentbucourt1 Race (IOI11_race) C++14
Compilation error
0 ms 0 KB
#include "race.h"
#define ll long long
#define f first
#define s second

const static ll INF = 1e18;
const ll MAXN = 200001;

static ll N, sumNeed;
static vector<pair<ll, ll>> adj[MAXN];

static int depth[MAXN], sum[MAXN];
static map<ll, ll> maps[MAXN];
static ll ans = INF;

void dfs (ll node = 0, ll parent = -1) {
	maps[node][sum[node]] = depth[node];
	for (pair<ll, ll> nxt : adj[node]) {
		ll nodenxt = nxt.f, weightnxt = nxt.s;
		if (nodenxt == parent) continue;

		depth[nodenxt] = depth[node] + 1;
		sum[nodenxt] = sum[node] + weightnxt;

		dfs(nodenxt, node);

		if (maps[nodenxt].size() > maps[node].size()) swap(maps[nodenxt], maps[node]);
		for (pair<ll, ll> elem : maps[nodenxt]) {
			ll sumOn = elem.f, depthOn = elem.s;

			ll need = -sumOn + 2*sum[node] + sumNeed;
			if (maps[node].find(need) != maps[node].end()) {
				ans = min(ans, maps[node][need] - 2*depth[node] + depthOn);
			}

			if (maps[node].find(sumOn) == maps[node].end()) {
				maps[node][sumOn] = depthOn;
			}
			else {
				maps[node][sumOn] = min(maps[node][sumOn], depthOn);
			}
		}
		maps[nodenxt].clear();
	}
}

int best_path(int N, int K, int H[][2], int L[])
{
	::N = N;
	sumNeed = K;
	for (int i = 0; i < N-1; i++) {
		adj[H[i][0]].push_back({H[i][1], L[i]});
		adj[H[i][1]].push_back({H[i][0], L[i]});
	}

	dfs();

	if (ans == INF) return -1;
	else return ans;
}

Compilation message

race.cpp:10:8: error: 'vector' does not name a type
   10 | static vector<pair<ll, ll>> adj[MAXN];
      |        ^~~~~~
race.cpp:13:8: error: 'map' does not name a type
   13 | static map<ll, ll> maps[MAXN];
      |        ^~~
race.cpp: In function 'void dfs(long long int, long long int)':
race.cpp:17:2: error: 'maps' was not declared in this scope
   17 |  maps[node][sum[node]] = depth[node];
      |  ^~~~
race.cpp:18:7: error: 'pair' was not declared in this scope
   18 |  for (pair<ll, ll> nxt : adj[node]) {
      |       ^~~~
race.cpp:2:12: error: expected primary-expression before 'long'
    2 | #define ll long long
      |            ^~~~
race.cpp:18:12: note: in expansion of macro 'll'
   18 |  for (pair<ll, ll> nxt : adj[node]) {
      |            ^~
race.cpp:45:1: error: expected primary-expression before '}' token
   45 | }
      | ^
race.cpp:44:3: error: expected ';' before '}' token
   44 |  }
      |   ^
      |   ;
   45 | }
      | ~  
race.cpp:45:1: error: expected primary-expression before '}' token
   45 | }
      | ^
race.cpp:44:3: error: expected ')' before '}' token
   44 |  }
      |   ^
      |   )
   45 | }
      | ~  
race.cpp:18:6: note: to match this '('
   18 |  for (pair<ll, ll> nxt : adj[node]) {
      |      ^
race.cpp:45:1: error: expected primary-expression before '}' token
   45 | }
      | ^
race.cpp: In function 'int best_path(int, int, int (*)[2], int*)':
race.cpp:52:3: error: 'adj' was not declared in this scope
   52 |   adj[H[i][0]].push_back({H[i][1], L[i]});
      |   ^~~