Submission #118628

# Submission time Handle Problem Language Result Execution time Memory
118628 2019-06-19T10:01:51 Z sealnot123 Crayfish scrivener (IOI12_scrivener) C++14
100 / 100
623 ms 87608 KB
#ifdef LOCAL
#include "grader.cpp"
#endif // LOCAL
#include<bits/stdc++.h>
#define x first
#define y second
#define pb push_back
#define eb emplace_back
#define all(a) (a).begin(),(a).end()
#define SZ(a) (int)(a).size()
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PLL;
typedef pair<int,int> PII;
typedef double D;
typedef long double LD;
const int N = 1000007;
char cha[N];
int dp[20][N], lv[N], state[N], cnt;
void Init() {}

void TypeLetter(char L){
    int i,j,k,l,a,b,c,d;
    int p = state[cnt];
    cnt++;
    state[cnt] = cnt;
    dp[0][cnt] = p;
    lv[cnt] = lv[p]+1;
    cha[cnt] = L;
    for(i=1; i<20; i++) dp[i][cnt] = dp[i-1][dp[i-1][cnt]];
}

void UndoCommands(int U) {
    int t = cnt - U;
    state[++cnt] = state[t];
}

char GetLetter(int P) {
    int i,j,k,l,a,b,c,d,now;
    now = state[cnt];
//    printf("xx%d %d\n", lv[now], P);
    j = lv[now] - 1 - P;
    for(i=19; i>=0; i--){
        if(j >= (1<<i)){
            j -= (1<<i);
            now = dp[i][now];
        }
    }
    return cha[now];
}
/*
14
T a
T b
P 1
T d
U 2
U 1
P 2
T e
U 1
U 5
T c
P 2
U 2
P 2

*/

Compilation message

scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:23:11: warning: unused variable 'j' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
           ^
scrivener.cpp:23:13: warning: unused variable 'k' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
             ^
scrivener.cpp:23:15: warning: unused variable 'l' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
               ^
scrivener.cpp:23:17: warning: unused variable 'a' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
                 ^
scrivener.cpp:23:19: warning: unused variable 'b' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
                   ^
scrivener.cpp:23:21: warning: unused variable 'c' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
                     ^
scrivener.cpp:23:23: warning: unused variable 'd' [-Wunused-variable]
     int i,j,k,l,a,b,c,d;
                       ^
scrivener.cpp: In function 'char GetLetter(int)':
scrivener.cpp:39:13: warning: unused variable 'k' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
             ^
scrivener.cpp:39:15: warning: unused variable 'l' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
               ^
scrivener.cpp:39:17: warning: unused variable 'a' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
                 ^
scrivener.cpp:39:19: warning: unused variable 'b' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
                   ^
scrivener.cpp:39:21: warning: unused variable 'c' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
                     ^
scrivener.cpp:39:23: warning: unused variable 'd' [-Wunused-variable]
     int i,j,k,l,a,b,c,d,now;
                       ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 512 KB Output is correct
2 Correct 2 ms 512 KB Output is correct
3 Correct 2 ms 512 KB Output is correct
4 Correct 2 ms 512 KB Output is correct
5 Correct 2 ms 512 KB Output is correct
6 Correct 2 ms 512 KB Output is correct
7 Correct 2 ms 512 KB Output is correct
8 Correct 2 ms 512 KB Output is correct
9 Correct 2 ms 512 KB Output is correct
10 Correct 2 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 512 KB Output is correct
2 Correct 2 ms 512 KB Output is correct
3 Correct 2 ms 512 KB Output is correct
4 Correct 2 ms 512 KB Output is correct
5 Correct 2 ms 512 KB Output is correct
6 Correct 2 ms 640 KB Output is correct
7 Correct 2 ms 508 KB Output is correct
8 Correct 2 ms 512 KB Output is correct
9 Correct 2 ms 512 KB Output is correct
10 Correct 2 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 640 KB Output is correct
2 Correct 4 ms 768 KB Output is correct
3 Correct 4 ms 896 KB Output is correct
4 Correct 3 ms 896 KB Output is correct
5 Correct 4 ms 896 KB Output is correct
6 Correct 3 ms 896 KB Output is correct
7 Correct 3 ms 896 KB Output is correct
8 Correct 4 ms 896 KB Output is correct
9 Correct 3 ms 896 KB Output is correct
10 Correct 3 ms 1024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 329 ms 63756 KB Output is correct
2 Correct 383 ms 77424 KB Output is correct
3 Correct 334 ms 76892 KB Output is correct
4 Correct 365 ms 80664 KB Output is correct
5 Correct 364 ms 71392 KB Output is correct
6 Correct 282 ms 83936 KB Output is correct
7 Correct 365 ms 72056 KB Output is correct
8 Correct 314 ms 81048 KB Output is correct
9 Correct 382 ms 77944 KB Output is correct
10 Correct 217 ms 87608 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 499 ms 58556 KB Output is correct
2 Correct 623 ms 50652 KB Output is correct
3 Correct 384 ms 64308 KB Output is correct
4 Correct 384 ms 55696 KB Output is correct
5 Correct 308 ms 74780 KB Output is correct
6 Correct 308 ms 77176 KB Output is correct
7 Correct 307 ms 77100 KB Output is correct
8 Correct 582 ms 64888 KB Output is correct
9 Correct 582 ms 62580 KB Output is correct
10 Correct 212 ms 86416 KB Output is correct