Submission #914378

# Submission time Handle Problem Language Result Execution time Memory
914378 2024-01-21T19:17:18 Z VMaksimoski008 Crayfish scrivener (IOI12_scrivener) C++14
100 / 100
794 ms 86628 KB
#include <bits/stdc++.h>
using namespace std;

int up[1000001][21], id=0, len[1000001];
char s[1000001];

void Init() { s[0] = ' '; }

void TypeLetter(char ch) {
    s[++id] = ch;
    len[id] = len[id-1] + 1;
    up[id][0] = id - 1;
    for(int i=1; i<21; i++) up[id][i] = up[ up[id][i-1] ][i-1];
}

void UndoCommands(int u) {
    int prev = (++id) - u - 1;
    s[id] = s[prev];
    len[id] = len[prev];
    up[id][0] = up[prev][0];
    for(int i=1; i<21; i++) up[id][i] = up[ up[id][i-1] ][i-1];
}

char GetLetter(int p) {
    int L = len[id]-p-1, pos = id;
    for(int i=20; i>=0; i--)
        if(L & (1 << i)) pos = up[pos][i];
	return s[pos];
}

Compilation message

scrivener.cpp: In function 'char GetLetter(int)':
scrivener.cpp:26:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   26 |     for(int i=20; i>=0; i--)
      |     ^~~
scrivener.cpp:28:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   28 |  return s[pos];
      |  ^~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 360 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 344 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 2 ms 604 KB Output is correct
4 Correct 2 ms 1032 KB Output is correct
5 Correct 2 ms 604 KB Output is correct
6 Correct 2 ms 860 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 2 ms 604 KB Output is correct
9 Correct 2 ms 860 KB Output is correct
10 Correct 2 ms 860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 311 ms 63512 KB Output is correct
2 Correct 400 ms 78132 KB Output is correct
3 Correct 283 ms 75856 KB Output is correct
4 Correct 366 ms 80468 KB Output is correct
5 Correct 302 ms 72020 KB Output is correct
6 Correct 274 ms 84668 KB Output is correct
7 Correct 772 ms 72004 KB Output is correct
8 Correct 794 ms 80648 KB Output is correct
9 Correct 368 ms 78164 KB Output is correct
10 Correct 213 ms 86624 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 379 ms 59580 KB Output is correct
2 Correct 366 ms 51488 KB Output is correct
3 Correct 288 ms 63728 KB Output is correct
4 Correct 313 ms 56040 KB Output is correct
5 Correct 295 ms 73952 KB Output is correct
6 Correct 379 ms 78320 KB Output is correct
7 Correct 337 ms 76116 KB Output is correct
8 Correct 675 ms 66024 KB Output is correct
9 Correct 678 ms 64032 KB Output is correct
10 Correct 207 ms 86628 KB Output is correct