Submission #952025

# Submission time Handle Problem Language Result Execution time Memory
952025 2024-03-23T03:52:28 Z Yell0 Crayfish scrivener (IOI12_scrivener) C++17
12 / 100
439 ms 78412 KB
#include <bits/stdc++.h>
 
using namespace std;
struct node {
  vector<int> anc;
  int len;
  char letter;
  int point;
};
vector<node> hist;

void Init() {
  node n;
  n.len = 0;
  n.letter = 0;
  n.point = 0;
  hist.emplace_back(n);
}

void TypeLetter(char L) {
  node n;
  int uidx = hist[hist.size() - 1].point;
  node u = hist[uidx];

  n.letter = L;
  n.len = u.len + 1;
  n.point = hist.size();
  for(int i=0, curr=uidx; 1; ++i) {
    n.anc.emplace_back(curr);
    if(i >= hist[curr].anc.size()) break;
    curr = hist[curr].anc[i];
  }
  hist.emplace_back(n);
}

void UndoCommands(int U) {
  node n;
  n.len = -1;
  n.letter = 0;
  n.point = hist[hist.size() - 1 - U].point;
  hist.emplace_back(n);
}

char GetLetter(int P) {
  int uidx = hist[hist.size() - 1].point;
  node u = hist[uidx];

  int dist = u.len-P-1, curr = uidx;
  for(int i=10; i>=0; --i) {
    if(((1<<i) & dist) == 0) continue;
    curr = hist[curr].anc[i];
  }
  return hist[curr].letter;
}

Compilation message

scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:30:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     if(i >= hist[curr].anc.size()) break;
      |        ~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 440 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 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# 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 1 ms 348 KB Output is correct
4 Correct 0 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 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 2 ms 712 KB Output is correct
3 Correct 2 ms 604 KB Output is correct
4 Correct 2 ms 860 KB Output is correct
5 Correct 2 ms 716 KB Output is correct
6 Correct 2 ms 980 KB Output is correct
7 Correct 2 ms 604 KB Output is correct
8 Correct 2 ms 860 KB Output is correct
9 Incorrect 2 ms 860 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 416 ms 78412 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 439 ms 76232 KB Output isn't correct
2 Halted 0 ms 0 KB -