Submission #1048294

#TimeUsernameProblemLanguageResultExecution timeMemory
1048294amirhoseinfar1385Dungeons Game (IOI21_dungeons)C++17
11 / 100
12 ms13660 KiB
#include "dungeons.h"
#include <bits/stdc++.h>
using namespace std;
const int maxn=400000+10,maxh=10000+10;
long long n,all[maxn],r[maxn],l[maxn],s[maxn],p[maxn],dp[maxn];

void init(int n_, std::vector<int> s_, std::vector<int> p_, std::vector<int> w_, std::vector<int> l_) {
	n=n_;
	for(int i=0;i<n;i++){
		s[i]=s_[i];
		l[i]=l_[i];
		r[i]=w_[i];
		p[i]=p_[i];
	}
	for(int i=n-1;i>=0;i--){
		dp[i]=dp[r[i]]+s[i];
	}
	return;
}

long long simulate(int x, int z) {
	while(z<maxh){
		if(x==n){
			return z;
		}
		if(z>=s[x]){
			z+=s[x];
			x=r[x];
		}else{
			z+=p[x];
			x=l[x];
		}
	}
	z+=dp[x];
	return 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...