Submission #120480

# Submission time Handle Problem Language Result Execution time Memory
120480 2019-06-24T16:03:42 Z KieranHorgan Crayfish scrivener (IOI12_scrivener) C++17
100 / 100
822 ms 89552 KB
#include <bits/stdc++.h>
using namespace std;
int a[1000005][23];
int curStep=0, node, i;
void Init() {}
void TypeLetter(char L) {
	a[++curStep][21] = L;
	a[curStep][22] = a[curStep-1][22]+1;
	a[curStep][0] = curStep-1;
	for(i = 1; 1<<i <= a[curStep][22]; i++)
		a[curStep][i] = a[a[curStep][i-1]][i-1];
}

void UndoCommands(int U) {
	copy(a[curStep-1-U], a[curStep-1-U]+23, a[++curStep]);
}

char GetLetter(int P) {
  for(i = 21, node = curStep; i >= 0; i--)
  	if(a[node][22] - (1<<i) >= P+1)
  		node = a[node][i];
  return a[node][21];
}

Compilation message

scrivener.cpp: In function 'void UndoCommands(int)':
scrivener.cpp:15:44: warning: operation on 'curStep' may be undefined [-Wsequence-point]
  copy(a[curStep-1-U], a[curStep-1-U]+23, a[++curStep]);
                                            ^~~~~~~~~
scrivener.cpp:15:44: warning: operation on 'curStep' may be undefined [-Wsequence-point]
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 256 KB Output is correct
8 Correct 2 ms 256 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 304 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 512 KB Output is correct
2 Correct 3 ms 640 KB Output is correct
3 Correct 3 ms 768 KB Output is correct
4 Correct 4 ms 768 KB Output is correct
5 Correct 3 ms 640 KB Output is correct
6 Correct 3 ms 768 KB Output is correct
7 Correct 3 ms 640 KB Output is correct
8 Correct 3 ms 768 KB Output is correct
9 Correct 4 ms 768 KB Output is correct
10 Correct 3 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 525 ms 64796 KB Output is correct
2 Correct 567 ms 79028 KB Output is correct
3 Correct 367 ms 78668 KB Output is correct
4 Correct 389 ms 82348 KB Output is correct
5 Correct 602 ms 72580 KB Output is correct
6 Correct 431 ms 85844 KB Output is correct
7 Correct 567 ms 73348 KB Output is correct
8 Correct 570 ms 82696 KB Output is correct
9 Correct 762 ms 79596 KB Output is correct
10 Correct 213 ms 89552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 647 ms 59564 KB Output is correct
2 Correct 747 ms 51488 KB Output is correct
3 Correct 371 ms 65468 KB Output is correct
4 Correct 382 ms 56684 KB Output is correct
5 Correct 417 ms 76072 KB Output is correct
6 Correct 418 ms 78852 KB Output is correct
7 Correct 422 ms 78644 KB Output is correct
8 Correct 630 ms 66036 KB Output is correct
9 Correct 822 ms 63508 KB Output is correct
10 Correct 212 ms 88412 KB Output is correct