제출 #361462

#제출 시각아이디문제언어결과실행 시간메모리
361462NachoLibreCrayfish scrivener (IOI12_scrivener)C++17
60 / 100
1080 ms170184 KiB
#include <bits/stdc++.h> using namespace std; #pragma comment(linker, "/stack:200000000") #pragma GCC optimize("O3") #pragma GCC optimize("-O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("-Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("unroll-loops") #ifndef wambule // #include ".h" #else #endif const int N = 1000006; const int L = 21; struct ovo { vector<ovo*> v; ovo *up[L]; int dt; char c; ovo() {} ovo(ovo *op, char _c) { c = _c; dt = op->dt + 1; v.clear(); up[0] = op; for(int i = 1; i < L; ++i) { up[i] = up[i - 1]; if(up[i] != NULL) up[i] = up[i]->up[i - 1]; } } ovo* A(char c) { v.push_back(new ovo(this, c)); return *(--v.end()); } } rt, *dg; vector<ovo*> v; void Init() { rt.c = ' '; rt.dt = -1; rt.v.clear(); for(int i = 0; i < L; ++i) { rt.up[i] = NULL; } dg = &rt; } void TypeLetter(char c) { dg = dg->A(c); v.push_back(dg); } void UndoCommands(int x) { dg = v[(int)v.size() - 1 - x]; v.push_back(dg); } char GetLetter(int id) { ovo *x = dg; for(int i = L - 1; i >= 0; --i) { if(x->up[i] != NULL && x->up[i]->dt >= id) { x = x->up[i]; } } #ifdef wambule cout << "[:] " << x->c << endl; #endif return x->c; } #ifdef wambule int main() { ios::sync_with_stdio(0); cin.tie(0); Init(); TypeLetter('a'); TypeLetter('b'); GetLetter(1); TypeLetter('d'); UndoCommands(2); UndoCommands(1); GetLetter(2); TypeLetter('e'); UndoCommands(1); UndoCommands(5); TypeLetter('c'); GetLetter(2); UndoCommands(2); GetLetter(2); return 0; } #endif

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

scrivener.cpp:3: warning: ignoring #pragma comment  [-Wunknown-pragmas]
    3 | #pragma comment(linker, "/stack:200000000")
      |
#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...