Submission #251656

#TimeUsernameProblemLanguageResultExecution timeMemory
251656tinjyu크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++14
34 / 100
250 ms122856 KiB
#include <iostream>
using namespace std;
char last;
 
void Init() {}
string s[1000005];
char c[1000005],ad[1000005],ans[1000005];
long long int num[1000005],tmp;
long long int p,pp;
void TypeLetter(char L) {
	p++;
	if(p<=10000)
	{
		s[p]=s[p-1]+L;
	}
	
	c[p]='a';
	ad[p]=L;
	//cout<<s[p]<<endl;
}
 
void UndoCommands(int U) {
	p++;
	if(p<=10000)s[p]=s[p-U-1];
	
	c[p]='b';
	num[p]=U;
	//cout<<s[p]<<endl;
}
 
char GetLetter(int P) {
	if(p<=10000)return s[p][P];
	if(tmp==0)
	{
		tmp=1;
		for(int i=p;i>=1;i--)
		{
			if(c[i]=='a')
			{
				pp++;
				ans[pp]=ad[i];
			}
			else
			{
				i-=num[i];
			}
		}
	}
	return ans[P];
}
#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...