Submission #38044

# Submission time Handle Problem Language Result Execution time Memory
38044 2017-12-31T02:41:25 Z funcsr Crayfish scrivener (IOI12_scrivener) C++14
0 / 100
606 ms 190628 KB
#include <iostream>
#include <vector>
#include <string>
#define rep(i, n) for (int i=0; i<(n); i++)
using namespace std;
int N;
int U[20][1000000];
char W[1000000];
int R[1000000];
int ch[1000000][26];

int alloc(int par, char c) {
  if (par != -1) R[N] = R[par]+1;
  U[0][N] = par;
  for (int i=1; i<20; i++) U[i][N] = U[i-1][U[i-1][N]];
  return N++;
}

int next(int v, char c) {
  if (ch[v][c] == -1) ch[v][c] = alloc(v, c);
  return ch[v][c];
}

int cur = 0;
int V[1000000];

void Init() {
  rep(i, 1000000) rep(j, 26) ch[i][j] = -1;
  V[cur] = alloc(-1, '$');
}
void TypeLetter(char L) {
  V[cur+1] = next(V[cur], L);
  cur++;
}
void UndoCommands(int U) {
  V[cur+1] = V[cur-U];
  cur++;
}

inline int up(int v, int k) {
  for (int i=19; i>=0; i--) if (k>>i) v = U[i][v];
  return v;
}

char GetLetter(int P) {
  int v = V[cur];
  return W[up(v, R[v]-(P+1))];
}

Compilation message

scrivener.cpp: In function 'int next(int, char)':
scrivener.cpp:20:14: warning: array subscript has type 'char' [-Wchar-subscripts]
   if (ch[v][c] == -1) ch[v][c] = alloc(v, c);
              ^
scrivener.cpp:20:30: warning: array subscript has type 'char' [-Wchar-subscripts]
   if (ch[v][c] == -1) ch[v][c] = alloc(v, c);
                              ^
scrivener.cpp:21:17: warning: array subscript has type 'char' [-Wchar-subscripts]
   return ch[v][c];
                 ^
# Verdict Execution time Memory Grader output
1 Incorrect 43 ms 190628 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 49 ms 190628 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 33 ms 190628 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 383 ms 190628 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 606 ms 190628 KB Output isn't correct
2 Halted 0 ms 0 KB -