Submission #850913

#TimeUsernameProblemLanguageResultExecution timeMemory
850913promitheasCrayfish scrivener (IOI12_scrivener)C++14
0 / 100
307 ms257140 KiB
//CrayfishScrivener/IOI2012 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stdint.h> #define MAXNLOG 22 #define MAXN 1000500 class Node { public: char letter; Node* parents[MAXNLOG+1]; int level; Node(Node* parent, char letter = 0) { level = parent ? parent->level + 1 : 0; this->letter = letter; parents[0] = parent; for (int i = 1; i < MAXNLOG; i++) { if (parents[i - 1]) parents[i] = parents[i - 1]->parents[i - 1]; else parents[i] = nullptr; } } Node* GetNthParent(int n) { Node* tar = this; for (int i = MAXNLOG; i >= 0; i--) { int p = 1 << i; if (n & p)tar = tar->parents[i]; if (!tar)return nullptr; } return tar; } }; Node* NODES[MAXN]; int N = 1; void Init() { NODES[0] = new Node(nullptr, 0); } void TypeLetter(char L) { NODES[N] = new Node(NODES[N++ - 1], L); } void UndoCommands(int U) { NODES[N] = NODES[N++ - 1 - U]; } char GetLetter(int L) { int l = NODES[N - 1]->level; return NODES[N - 1]->GetNthParent(l-L)->letter; }

Compilation message (stderr)

scrivener.cpp: In function 'void TypeLetter(char)':
scrivener.cpp:44:29: warning: operation on 'N' may be undefined [-Wsequence-point]
   44 |  NODES[N] = new Node(NODES[N++ - 1], L);
      |                            ~^~
scrivener.cpp:44:29: warning: operation on 'N' may be undefined [-Wsequence-point]
scrivener.cpp: In function 'void UndoCommands(int)':
scrivener.cpp:48:20: warning: operation on 'N' may be undefined [-Wsequence-point]
   48 |  NODES[N] = NODES[N++ - 1 - U];
      |                   ~^~
scrivener.cpp:48:20: warning: operation on 'N' may be undefined [-Wsequence-point]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...