AtCoder Beginner Contest 203(Sponsored by Panasonic)
問題文
省略
省略
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: 2024年04月26日01時36分49秒
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)