Submission #118492

# Submission time Handle Problem Language Result Execution time Memory
118492 2019-06-19T05:47:59 Z Scpootish Crayfish scrivener (IOI12_scrivener) C++14
100 / 100
623 ms 90716 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 384 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 1 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 0 ms 512 KB Output is correct
6 Correct 2 ms 512 KB Output is correct
7 Correct 3 ms 512 KB Output is correct
8 Correct 2 ms 512 KB Output is correct
9 Correct 3 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 3 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 4 ms 896 KB Output is correct
7 Correct 3 ms 896 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 896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 361 ms 66664 KB Output is correct
2 Correct 397 ms 80760 KB Output is correct
3 Correct 348 ms 80824 KB Output is correct
4 Correct 375 ms 85964 KB Output is correct
5 Correct 397 ms 75220 KB Output is correct
6 Correct 290 ms 87160 KB Output is correct
7 Correct 501 ms 77008 KB Output is correct
8 Correct 346 ms 85368 KB Output is correct
9 Correct 402 ms 81580 KB Output is correct
10 Correct 220 ms 90716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 580 ms 62072 KB Output is correct
2 Correct 623 ms 55244 KB Output is correct
3 Correct 355 ms 68728 KB Output is correct
4 Correct 383 ms 61688 KB Output is correct
5 Correct 305 ms 78456 KB Output is correct
6 Correct 329 ms 80844 KB Output is correct
7 Correct 317 ms 80760 KB Output is correct
8 Correct 589 ms 69980 KB Output is correct
9 Correct 603 ms 67320 KB Output is correct
10 Correct 216 ms 89548 KB Output is correct