Submission #20811

# Submission time Handle Problem Language Result Execution time Memory
20811 2017-02-16T08:20:32 Z jjwdi0 Crayfish scrivener (IOI12_scrivener) C++11
100 / 100
933 ms 96352 KB
int par[1<<20][21], size[1<<20], for_undo[1<<20],  kth, Q;
char a[1<<20];
void Init(){}
void TypeLetter(char x) {
	for_undo[kth] = kth; if(kth) par[kth][0] = for_undo[kth - 1]; 
	for(int i = 1; par[kth][i-1]; i++) par[kth][i] = par[par[kth][i-1]][i-1];
	a[kth] = x, size[kth] = size[par[kth++][0]] + 1;
}
void UndoCommands(int x){ for_undo[kth] = for_undo[kth++ - x - 1]; }
char GetLetter(int x) {
	int u = for_undo[kth - 1];
	for(int i = 19; ~i; i--) if(size[par[u][i]] > x) u = par[u][i];
	return a[u];
}

Compilation message

scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:7:49: warning: operation on 'kth' may be undefined [-Wsequence-point]
  a[kth] = x, size[kth] = size[par[kth++][0]] + 1;
                                                 ^
scrivener.cpp: In function 'void UndoCommands(int)':
scrivener.cpp:9:66: warning: operation on 'kth' may be undefined [-Wsequence-point]
 void UndoCommands(int x){ for_undo[kth] = for_undo[kth++ - x - 1]; }
                                                                  ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 96352 KB Output is correct
2 Correct 0 ms 96352 KB Output is correct
3 Correct 0 ms 96352 KB Output is correct
4 Correct 0 ms 96352 KB Output is correct
5 Correct 0 ms 96352 KB Output is correct
6 Correct 0 ms 96352 KB Output is correct
7 Correct 0 ms 96352 KB Output is correct
8 Correct 0 ms 96352 KB Output is correct
9 Correct 0 ms 96352 KB Output is correct
10 Correct 0 ms 96352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 96352 KB Output is correct
2 Correct 0 ms 96352 KB Output is correct
3 Correct 0 ms 96352 KB Output is correct
4 Correct 0 ms 96352 KB Output is correct
5 Correct 0 ms 96352 KB Output is correct
6 Correct 0 ms 96352 KB Output is correct
7 Correct 0 ms 96352 KB Output is correct
8 Correct 0 ms 96352 KB Output is correct
9 Correct 0 ms 96352 KB Output is correct
10 Correct 0 ms 96352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 96352 KB Output is correct
2 Correct 0 ms 96352 KB Output is correct
3 Correct 0 ms 96352 KB Output is correct
4 Correct 0 ms 96352 KB Output is correct
5 Correct 0 ms 96352 KB Output is correct
6 Correct 0 ms 96352 KB Output is correct
7 Correct 0 ms 96352 KB Output is correct
8 Correct 0 ms 96352 KB Output is correct
9 Correct 0 ms 96352 KB Output is correct
10 Correct 0 ms 96352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 543 ms 96352 KB Output is correct
2 Correct 516 ms 96352 KB Output is correct
3 Correct 363 ms 96352 KB Output is correct
4 Correct 336 ms 96352 KB Output is correct
5 Correct 599 ms 96352 KB Output is correct
6 Correct 453 ms 96352 KB Output is correct
7 Correct 626 ms 96352 KB Output is correct
8 Correct 509 ms 96352 KB Output is correct
9 Correct 619 ms 96352 KB Output is correct
10 Correct 176 ms 96352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 763 ms 96352 KB Output is correct
2 Correct 899 ms 96352 KB Output is correct
3 Correct 376 ms 96352 KB Output is correct
4 Correct 429 ms 96352 KB Output is correct
5 Correct 493 ms 96352 KB Output is correct
6 Correct 456 ms 96352 KB Output is correct
7 Correct 539 ms 96352 KB Output is correct
8 Correct 766 ms 96352 KB Output is correct
9 Correct 933 ms 96352 KB Output is correct
10 Correct 136 ms 96352 KB Output is correct