제출 #1048438

#제출 시각아이디문제언어결과실행 시간메모리
1048438DorostWef던전 (IOI21_dungeons)C++17
11 / 100
7096 ms26172 KiB
#include "dungeons.h"
#include <bits/stdc++.h>
using namespace std;

const int N = 400023;
int s[N], p[N], w[N], l[N], n;
long long m[N], a[N];

void init(int nn, std::vector<int> ss, std::vector<int> pp, std::vector<int> ww, std::vector<int> ll) {
	n = nn;
	for (int i = 0; i < n; i++) {
		s[i] = ss[i];
		p[i] = pp[i];
		w[i] = ww[i];
		l[i] = ll[i];
	}
	m[n] = 0;
	a[n] = 0;
	for (int i = n - 1; i >= 0; i--) {
		a[i] = a[w[i]] + s[i];
		m[i] = max((long long)s[i], m[w[i]] - s[i]);
	}
	return;
}

long long simulate(int x, int z) {
	if (z >= m[x])
		return z + a[x];
	if (z >= s[x]) {
		z += s[x];
		x = w[x];
	} else {
		z += p[x];
		x = l[x];
	}
	return simulate (x, z);
}

#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...