올해 국제정보올림피아드가 끝났습니다.
심심해서 짠 3번문항 코드 (근데 채점 불가능)
char last[1001000];
int prev[1001000][20];
int len[1001000];
int num;
void init(){
num=0;
}
void TypeLetter(char L){
last[num]=L;
if(num!=0)prev[num][0]=num-1;
else prev[num][0]=0;
if(num!=0)len[num]=len[num-1]+1;
else len[num]=1;
int i;
for(i=1;i<20;i++)prev[num][i]=prev[prev[num][i-1]][i-1];
num++;
}
void UndoCommands(int U){
last[num]=last[num-U-1];
len[num]=len[num-U-1];
int i;
for(i=0;i<20;i++)prev[num][i]=prev[num-U-1][i];
num++;
}
char GetLetter(int P){
int i=num-1;
int j=len[i]-1-P;
int k;
for(k=0;k<20;k++){
if((j>>k)&1)i=prev[i][k];
}
return last[i];
}
근데 ㅊㅋ
탭들여씌해도 복붙하면 띄어쓰기됨
그리고문제를 보세요 문제를
메인함수 없음