제출 #393259

#제출 시각아이디문제언어결과실행 시간메모리
393259Hazem크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++14
60 / 100
1099 ms86632 KiB
#include <bits/stdc++.h>
//#include "grader.h"
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")


using namespace std;
 
#define S second
#define F first
#define LL long long 
 
const int N = 1e6+1;
const LL MOD = 1e9+7;
const LL LINF = 1e18;
const LL INF = 1e9;


char s[N];
int par[21][N],len[N];
int cnt = 1;

char last;

void Init() {}

void buildst(int x,int pr){
	
	par[0][x] = pr;
	len[x] = len[pr];
	int cur = pr;
	for(int i=1;i<=20;i++)
		par[i][x] = par[i-1][cur],cur = par[i-1][cur];
}

void TypeLetter(char L) {

	buildst(cnt,cnt-1);
	len[cnt]++;
	s[cnt] = L;
	cnt++;
}

void UndoCommands(int U) {
	
	buildst(cnt,cnt-U-1);
	cnt++;
}

char GetLetter(int P) {
	
	cnt--;
	
	P++;
	int cur = cnt;
	for(int i=20;i>=0;i--)
		if(len[par[i][cur]]>=P)cur = par[i][cur];
	
	cnt++;
	return s[cur];
}

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

scrivener.cpp:5: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
    5 | #pragma GCC optimization ("unroll-loops")
      |
#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...