제출 #516118

#제출 시각아이디문제언어결과실행 시간메모리
516118600MihneaCrayfish scrivener (IOI12_scrivener)C++17
34 / 100
1093 ms140740 KiB
#include <bits/stdc++.h> using namespace std; class Vertex { private: Vertex* kids[26]; Vertex* father; int len; char lastChar; public: Vertex() : len(0), father(nullptr), lastChar('#') { for (int i = 0; i < 26; i++) kids[i] = nullptr; } Vertex* addChar(char ch) { int id = ch - 'a'; if (!kids[id]) { kids[id] = new Vertex; kids[id]->len = len + 1; kids[id]->father = this; kids[id]->lastChar = ch; } return kids[id]; } Vertex* getDown(int levels) { if (!levels) return this; return father->getDown(levels - 1); } int query(int p) { Vertex* vertex = getDown(len - 1 - p); return vertex->lastChar; } }; class VertexHandler { private: vector<Vertex*> history; public: VertexHandler() { history.push_back(new Vertex); } void undoHistory(int t) { int version = (int) history.size() - 1 - t; history.push_back(history[version]); } void addChar(char ch) { history.push_back(history.back()->addChar(ch)); } int query(int p) { int S = history.back()->query(p); return S; } } vertexHandler; char last; void Init() {} void TypeLetter(char L) { vertexHandler.addChar(L); last = L; } void UndoCommands(int U) { vertexHandler.undoHistory(U); } char GetLetter(int P) { return vertexHandler.query(P); }

컴파일 시 표준 에러 (stderr) 메시지

scrivener.cpp: In constructor 'Vertex::Vertex()':
scrivener.cpp:9:7: warning: 'Vertex::len' will be initialized after [-Wreorder]
    9 |   int len;
      |       ^~~
scrivener.cpp:8:11: warning:   'Vertex* Vertex::father' [-Wreorder]
    8 |   Vertex* father;
      |           ^~~~~~
scrivener.cpp:13:3: warning:   when initialized here [-Wreorder]
   13 |   Vertex() :
      |   ^~~~~~
#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...