yukicoder No.862 - XORでX

Source

ニコニコミュニティ
問題文

問題概要

省略

解法

省略

cLayversion 20190820-1)のコード

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

int N, X;
int res[1d5], r;

void push(int a = 0, int b = 0, int c = 0, int d = 0){
  if(a) res[r++] = a;
  if(b) res[r++] = b;
  if(c) res[r++] = c;
  if(d) res[r++] = d;
}

{
  int i, k, m;
  rd(N,X);

  m = (N-1) / 4;
  k = 4;
  rep(i,m){
    if(X/4==k/4) k += 4;
    push(k, k+1, k+2, k+3);
    k += 4;
  }

  if(N%4==0){
    if(X==1)      push(k+1, k+3, 1, 2);
    else if(X==2) push(k, k+1, 1, 2);
    else if(X==3) push(k, k+1, 1, 3);
    else          push(X, 1, 2, 3);
  }
  if(N%4==1){
    push(X);
  }
  if(N%4==2){
    if(X!=1) push(X^1, 1);
    else     push(2, 3);
  }
  if(N%4==3){
    if(X==1)      push(3, k, k+2);
    else if(X==2) push(3, k, k+1);
    else if(X==3) push(2, k, k+1);
    else          push(X^1, 2, 3);
  }

  rep(i,N) wt(res[i]);
}

Current time: 2024年03月29日08時02分25秒
Last modified: 2019年08月21日06時07分47秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: