AtCoder Grand Contest #036
問題文
省略
省略
C++に変換後のコードはこちら
int N, A[2d5];
ll K;
int ls[200001];
int nx[2d5], p[2d5];
int res[2d5], ress;
{
int i, j, k;
rd(N,K,A(N));
for(i=N-1;i>=0;i--) ls[A[i]] = N+i;
for(i=N-1;i>=0;i--){
nx[i] = ls[A[i]] + 1;
while(nx[i] >= N) nx[i] -= N, p[i]++;
ls[A[i]] = i;
}
i = k = 0;
for(;;){
k += p[i];
i = nx[i];
if(i==0) break;
}
K %= k;
i = 0;
while(K){
if(K-p[i] < 0 || (K-p[i] == 0 && nx[i] > 0)){
res[ress++] = A[i];
i++;
if(i==N) K--, i=0;
continue;
}
K -= p[i];
i = nx[i];
}
wt(res(ress));
}
Current time: 2024年04月25日18時45分38秒
Last modified: 2019年07月22日01時38分24秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Grand_Contest AGC036 AGC_B
トップページに戻る
Logged in as: unknown user (not login)