Submission #157755

# Submission time Handle Problem Language Result Execution time Memory
157755 2019-10-12T19:44:35 Z davitmarg Crayfish scrivener (IOI12_scrivener) C++17
0 / 100
457 ms 77912 KB
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <set>
#include <queue>
#include <iomanip>
#include <bitset>
#include <stack>
#include <cassert>
#include <iterator>
#include <ctype.h>
#include <fstream>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(), v.end()
using namespace std;

const int N = 1000000;
int k, n, up[N + 10][30], d[N + 10], ind[N + 10], v = 1, timer;
char a[N + 10];

void addNode(int p, char x)
{
    v = ++n;
    a[v] = x;
    d[v] = d[p] + 1;
    up[v][0] = p;
    for (int i = 1; i <= k; i++)
        up[v][i] = up[up[v][i - 1]][i - 1];
}

char get(int v, int cnt)
{
    if (cnt == d[v])
        return a[v];
    for (int i = k; i >= 0; i--)
    {
        int p = up[v][i];
        if (d[p] <= cnt)
            v = p;
    }
    return a[up[v][0]];
}

void Init()
{
    while ((1 << k) <= N)
        k++;
}

void TypeLetter(char x)
{
    addNode(v, x);
    ind[++timer] = v;
}

char GetLetter(int pos)
{
    return get(v, pos);
}

void UndoCommands(int cnt)
{
    v = ind[timer + 1] = ind[timer - cnt];
    timer++;
}

#ifdef death

int main()
{
    Init();
    TypeLetter('a');
    TypeLetter('b');
    TypeLetter('c');
    cout << GetLetter(3) << endl;
    UndoCommands(2);
    TypeLetter('c');
    TypeLetter('d');
    cout << GetLetter(3) << endl;
    return 0;
}

#endif

/*
 
 
 
  
*/
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 438 ms 77912 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 457 ms 67576 KB Output isn't correct
2 Halted 0 ms 0 KB -