AtCoder Beginner Contest 203(Sponsored by Panasonic) E問題 - White Pawn

Source

AtCoder Beginner Contest 203(Sponsored by Panasonic)
問題文

問題概要

省略

解法

省略

cLayversion 20210607-1)のコード

C++に変換後のコードはこちら

int N, M, X[2d5], Y[2d5];
int *chk, *memo;
int sz, arr[2d5], k;
{
  rd(N,M,(X,Y)(M));
  sortA(M,X,Y);
  rep(i,M) Y[i] -= N;

  walloc1d(&chk, -M, M+1);
  walloc1d(&memo, -M, M+1);
  rep(i,-M,M+1) chk[i] = 0;
  chk[0] = 1;

  while(k < M){
    sz = 0;
    rep(i,k,M){
      if(X[i] != X[k]) break;
      if(abs(Y[i]) > M) continue;
      arr[sz++] = Y[i];
    }
    k = i;

    rep(i,sz) rep(j,-1,2) memo[arr[i]+j] = chk[arr[i]+j];
    rep(i,sz) if(memo[arr[i]]) chk[arr[i]] = 0;
    rep(i,sz) if(memo[arr[i]+1] || memo[arr[i]-1]) chk[arr[i]] = 1;
  }
  wt(sum[i,-M,M+1](chk[i]));
}

Current time: 2021年12月05日22時53分52秒
Last modified: 2021年06月07日19時39分37秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC203 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: