Submission #318062

#TimeUsernameProblemLanguageResultExecution timeMemory
318062Sho10Crayfish scrivener (IOI12_scrivener)C++14
100 / 100
712 ms81124 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10 #define ll long long #define double long double #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define all(a) (a).begin(), (a).end() #define f first #define s second #define pb push_back #define mp make_pair #define pi pair #define rc(s) return cout<<s,0 #define endl '\n' #define mod 1000000007 #define PI 3.14159265359 #define MAXN 100005 #define INF 1000000005 #define LINF 1000000000000000005ll #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; int x[1000005][25],d[1000005],pos[1000005],node=0,t=0,c=0; char a[1000005]; void Init(){} void TypeLetter(char L){ t++; node++; a[node]=L; x[node][0]=c; d[node]=d[c]+1; c=node; pos[t]=c; for(int i=1;i<20;i++) { x[c][i]=x[x[c][i-1]][i-1]; } return; } void UndoCommands(int U){ c=pos[t-U]; t++; pos[t]=c; } char GetLetter(int P){ P++; int val=c; for(int i=19;i>=0;i--) { if(d[x[val][i]]>=P){ val=x[val][i]; } } return a[val]; } /* int32_t main(){ CODE_START; */
#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...