#include <bits/stdc++.h>
#define st first
#define nd second
#define mp make_pair
#define pb push_back
#define mod 1000000007
#define N 1100005
using namespace std;
typedef long long ll;
struct node{
int git[26], par[23], ne, der;
} x[N];
int n, m, k, yer[N], lg[N];
void Init(){
for(int i = 5; i >= 1; i--){
for(int j = (1<<i); j > (1<<(i - 1)); j--){
lg[j] = i + 1;
// cout << j << " " << i << endl;
}
}
lg[0] = 1;
lg[1] = 2;
}
void TypeLetter(char c){
int node = yer[m];
c -= 'a';
if(x[node].git[c] != 0)
yer[++m] = x[node].git[c];
else{
x[node].git[c] = ++k;
x[k].par[0] = node;
x[k].ne = c;
x[k].der = x[node].der + 1;
// cout << node << " ->" << k << endl;
yer[++m] = k;
for(int i = 1; i < 20; i++){
if(x[k].par[i - 1] == 0)
break;
x[k].par[i] = x[x[k].par[i - 1]].par[i - 1];
}
}
}
void UndoCommands(int y){
yer[m + 1] = yer[m - y];
m++;
}
char GetLetter(int y){
int node = yer[m];
y = x[node].der - (y + 1);
// cout << node << " " << y << " inci harfi bul, en son " << (char)(x[node].ne + 'a') << " var. " << x[node].der << " uzunlugunda" << endl;
for(int i = 19; i >= 0; i--){
if((1<<i) <= y){
y -= (1<<i);
node = x[node].par[i];
}
}
// cout << node << endl;
return x[node].ne + 'a';
}
// int main() {
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
// Init();
// TypeLetter('a');
// TypeLetter('b');
// cout << GetLetter(1) << endl;
// TypeLetter('d');
// UndoCommands(2);
// UndoCommands(1);
// cout << GetLetter(2) << endl;
// TypeLetter('e');
// UndoCommands(1);
// UndoCommands(5);
// TypeLetter('c');
// cout << GetLetter(2) << endl;
// UndoCommands(2);
// cout << GetLetter(2) << endl;
// return 0;
// }
Compilation message
scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:32:18: warning: array subscript has type 'char' [-Wchar-subscripts]
if(x[node].git[c] != 0)
^
scrivener.cpp:33:27: warning: array subscript has type 'char' [-Wchar-subscripts]
yer[++m] = x[node].git[c];
^
scrivener.cpp:35:16: warning: array subscript has type 'char' [-Wchar-subscripts]
x[node].git[c] = ++k;
^
# |
결과 |
실행 시간 |
메모리 |
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 |
436 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 |
# |
결과 |
실행 시간 |
메모리 |
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 |
384 KB |
Output is correct |
8 |
Correct |
3 ms |
384 KB |
Output is correct |
9 |
Correct |
2 ms |
384 KB |
Output is correct |
10 |
Correct |
2 ms |
384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
640 KB |
Output is correct |
2 |
Correct |
4 ms |
640 KB |
Output is correct |
3 |
Correct |
4 ms |
640 KB |
Output is correct |
4 |
Correct |
4 ms |
896 KB |
Output is correct |
5 |
Correct |
3 ms |
640 KB |
Output is correct |
6 |
Correct |
5 ms |
1152 KB |
Output is correct |
7 |
Correct |
4 ms |
1024 KB |
Output is correct |
8 |
Correct |
3 ms |
896 KB |
Output is correct |
9 |
Correct |
4 ms |
896 KB |
Output is correct |
10 |
Correct |
3 ms |
768 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
754 ms |
118176 KB |
Output is correct |
2 |
Correct |
774 ms |
129912 KB |
Output is correct |
3 |
Correct |
465 ms |
126176 KB |
Output is correct |
4 |
Correct |
464 ms |
94620 KB |
Output is correct |
5 |
Correct |
728 ms |
109220 KB |
Output is correct |
6 |
Correct |
715 ms |
140280 KB |
Output is correct |
7 |
Correct |
664 ms |
66736 KB |
Output is correct |
8 |
Correct |
800 ms |
103288 KB |
Output is correct |
9 |
Correct |
885 ms |
143880 KB |
Output is correct |
10 |
Correct |
266 ms |
104696 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
818 ms |
100052 KB |
Output is correct |
2 |
Correct |
938 ms |
87800 KB |
Output is correct |
3 |
Correct |
439 ms |
95060 KB |
Output is correct |
4 |
Correct |
411 ms |
67320 KB |
Output is correct |
5 |
Correct |
630 ms |
106108 KB |
Output is correct |
6 |
Correct |
550 ms |
98680 KB |
Output is correct |
7 |
Correct |
599 ms |
105828 KB |
Output is correct |
8 |
Correct |
774 ms |
48644 KB |
Output is correct |
9 |
Execution timed out |
1072 ms |
90848 KB |
Time limit exceeded |
10 |
Halted |
0 ms |
0 KB |
- |