제출 #896232

#제출 시각아이디문제언어결과실행 시간메모리
896232Muhammad_AneeqDungeons Game (IOI21_dungeons)C++17
11 / 100
7074 ms19760 KiB
#include <vector>
#include <set>
#include <map>
#include "dungeons.h"
using namespace std;
int const N=4e5+10;
int wi[N],lo[N],po[N],st[N];
int nn;
set<int>sr;
void init(int n, vector<int> s, vector<int> p, vector<int> w, vector<int> l)
{
	nn=n;
	for (int i=0;i<n;i++)
	{
		wi[i]=w[i];
		lo[i]=l[i];
		st[i]=s[i];
		po[i]=p[i];
		sr.insert(s[i]);
	}
}
long long simulate(int i, int z)
{
	if (sr.size()==1)
	{
		int f=*(begin(sr));
		map<int,int>vis;
		long long ans=z;
		vector<int>temp;
		while (!vis[i]&&ans<f)
		{
			temp.push_back(i);
			ans+=po[i];
			i=lo[i];
		}
		if (ans<f)
		{
			long long y=ans;
			while (ans+y<f)
				ans+=y;
			int j=0;
			for (auto i:temp)
			{
				ans+=po[i];
				j=i;
				if (ans>=f)
					break;
			}
			i=j;
		}
		while (i!=nn)
		{
			ans+=f;
			i=wi[i];
		}
		return ans;
	}
	long long ans=z;
	while (i!=nn)
	{
		if (z>=st[i])
		{
			z+=st[i];
			i=wi[i];
		}
		else
		{
			z+=po[i];
			i=lo[i];
		}
	}
	return z;
}

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

dungeons.cpp: In function 'long long int simulate(int, int)':
dungeons.cpp:58:12: warning: unused variable 'ans' [-Wunused-variable]
   58 |  long long ans=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...