Submission #911686

# Submission time Handle Problem Language Result Execution time Memory
911686 2024-01-19T04:41:15 Z Muhammad_Aneeq Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
533 ms 140180 KB
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int const N=1e6+10;
struct node
{
	char c=' ';
	int sz=0;
	node* par[22]={};
	node()
	{
		for (int i=0;i<22;i++)
			par[i]=NULL;
	}
};
vector<node*>re;
node* cur;
void Init()
{
	cur=NULL;
	re.push_back(cur);
}
void TypeLetter(char L)
{
		if (cur==NULL)
		{
			cur=new node();
			cur->c=L;
			cur->sz=1;
			re.push_back(cur);
			return;
		}
		node* z=new node();
		z->par[0]=cur;
		for (int i=1;i<22;i++)
		{
			if (z->par[i-1]==NULL)
				break;
			z->par[i]=z->par[i-1]->par[i-1];
		}
		z->c=L;
		z->sz=cur->sz+1;
		cur=z;
		re.push_back(cur);
}
void UndoCommands(int U)
{
	cur=re[re.size()-U-1];
	re.push_back(cur);
}
char GetLetter(int P)
{
	P=cur->sz-P-1;
	node* temp=cur;
	for (int i=0;i<22;i++)
	{
		if ((1<<i)&P)
			temp=temp->par[i];
	}
	return temp->c;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 344 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 1 ms 1112 KB Output is correct
5 Correct 1 ms 600 KB Output is correct
6 Correct 2 ms 1112 KB Output is correct
7 Correct 1 ms 1116 KB Output is correct
8 Correct 1 ms 860 KB Output is correct
9 Correct 1 ms 860 KB Output is correct
10 Correct 2 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 420 ms 116400 KB Output is correct
2 Correct 492 ms 127080 KB Output is correct
3 Correct 331 ms 124292 KB Output is correct
4 Correct 303 ms 98812 KB Output is correct
5 Correct 383 ms 109432 KB Output is correct
6 Correct 417 ms 137880 KB Output is correct
7 Correct 310 ms 66992 KB Output is correct
8 Correct 398 ms 100956 KB Output is correct
9 Correct 533 ms 140180 KB Output is correct
10 Correct 189 ms 102716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 409 ms 98480 KB Output is correct
2 Correct 459 ms 92076 KB Output is correct
3 Correct 325 ms 102160 KB Output is correct
4 Correct 274 ms 77260 KB Output is correct
5 Correct 394 ms 109892 KB Output is correct
6 Correct 327 ms 102320 KB Output is correct
7 Correct 342 ms 109488 KB Output is correct
8 Correct 442 ms 55472 KB Output is correct
9 Correct 502 ms 93832 KB Output is correct
10 Correct 193 ms 106160 KB Output is correct