Submission #1053157

#TimeUsernameProblemLanguageResultExecution timeMemory
1053157MarwenElarbiDungeons Game (IOI21_dungeons)C++17
0 / 100
8 ms22620 KiB
#include <bits/stdc++.h>
using namespace std;
#include "dungeons.h"
#define pb push_back
const int nax=4e5+5;
vector<int> adj[nax];
vector<int> ss,ll,ww,pp;
int depth[nax];
int N;
int dfs(int x){
	if(x==N) return 0;
	if(depth[x]!=0) return depth[x];
	depth[x]=1;
	depth[x]+=dfs(ss[x]);
	return depth[x];
}
void init(int n, std::vector<int> s, std::vector<int> p, std::vector<int> w, std::vector<int> l) {
	ss=s;
	pp=p;
	ww=w;
	ll=l;
	N=n;
	for (int i = 0; i < n; ++i)
	{
		adj[i].pb(ww[i]);
	}
	for (int i = 0; i < n; ++i)
	{
		if(depth[i]==0) dfs(i);
	}
	return;
}

long long simulate(int x, int z) {
	long long ans=z;
	if(ans>=ss[x]) return ans+1ll*(1+depth[ww[x]])*ss[x];
	else return ans+1ll*(1+depth[ll[x]])*ss[x];
}

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