Submission #68497

# Submission time Handle Problem Language Result Execution time Memory
68497 2018-08-17T08:25:47 Z nvmdava Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
748 ms 126844 KB
#include <bits/stdc++.h>
using namespace std;
char s[1000001];
int now = 0, i = 1, dir[1000001][21], sz[1000001];
void Init() {}

int find(int i, int x){
	for(int j = 0; j < 21; j++){
		if((1 << j) & x){
			i = dir[i][j];
		}
	}
	return i;
}

void TypeLetter(char L) {
	s[i] = L;
	dir[i][0] = now;
	sz[i] = sz[now] + 1;
	dir[i][0] = now;
	for(int j = 1; j < 21; j++){
		if(sz[i] <= (1 << j)) break;
		dir[i][j] = dir[dir[i][j - 1]][j - 1];
	}
	now = i;
	i++;
}
 
void UndoCommands(int U) {
	now = i - U - 1;
	s[i] = s[now];
	for(int j = 0; j <= 20; j++)dir[i][j] = dir[now][j];
	sz[i] = sz[now];
	i++;
}

char GetLetter(int P) {
	return s[find(i - 1, sz[i - 1] - P - 1)];
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 488 KB Output is correct
3 Correct 2 ms 508 KB Output is correct
4 Correct 2 ms 552 KB Output is correct
5 Correct 2 ms 552 KB Output is correct
6 Correct 2 ms 588 KB Output is correct
7 Correct 2 ms 588 KB Output is correct
8 Correct 2 ms 588 KB Output is correct
9 Correct 2 ms 656 KB Output is correct
10 Correct 2 ms 656 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 656 KB Output is correct
2 Correct 2 ms 656 KB Output is correct
3 Correct 2 ms 656 KB Output is correct
4 Correct 2 ms 656 KB Output is correct
5 Correct 3 ms 656 KB Output is correct
6 Correct 2 ms 656 KB Output is correct
7 Correct 2 ms 656 KB Output is correct
8 Correct 3 ms 656 KB Output is correct
9 Correct 2 ms 732 KB Output is correct
10 Correct 2 ms 732 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 748 KB Output is correct
2 Correct 4 ms 876 KB Output is correct
3 Correct 5 ms 1004 KB Output is correct
4 Correct 3 ms 1004 KB Output is correct
5 Correct 4 ms 1004 KB Output is correct
6 Correct 4 ms 1004 KB Output is correct
7 Correct 4 ms 1004 KB Output is correct
8 Correct 4 ms 1004 KB Output is correct
9 Correct 3 ms 1020 KB Output is correct
10 Correct 3 ms 1020 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 540 ms 63184 KB Output is correct
2 Correct 627 ms 76992 KB Output is correct
3 Correct 483 ms 76992 KB Output is correct
4 Correct 476 ms 79964 KB Output is correct
5 Correct 584 ms 79964 KB Output is correct
6 Correct 463 ms 83208 KB Output is correct
7 Correct 543 ms 83208 KB Output is correct
8 Correct 690 ms 83208 KB Output is correct
9 Correct 743 ms 83208 KB Output is correct
10 Correct 259 ms 86956 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 664 ms 86956 KB Output is correct
2 Correct 606 ms 86956 KB Output is correct
3 Correct 436 ms 86956 KB Output is correct
4 Correct 460 ms 86956 KB Output is correct
5 Correct 501 ms 90552 KB Output is correct
6 Correct 482 ms 97664 KB Output is correct
7 Correct 458 ms 102012 KB Output is correct
8 Correct 634 ms 102012 KB Output is correct
9 Correct 748 ms 102012 KB Output is correct
10 Correct 285 ms 126844 KB Output is correct