AtCoder Grand Contest #036 B問題 - Do Not Duplicate

Source

AtCoder Grand Contest #036
問題文

問題概要

省略

解法

省略

cLayversion 20190721-1)のコード

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: 2021年09月28日23時04分00秒
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)

ログイン: