AtCoder Beginner Contest #115 D問題 - Christmas

Source

AtCoder Beginner Contest #115
問題文

問題概要

省略

解法

省略

cLayversion 20190715-1)のコード

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

int N;
ll X;

ll sz[51], p[51];

{
  int i, j, k;
  ll res = 0;

  rd(N,X);

  sz[0] = p[0] = 1;
  rep(i,1,N+1){
    sz[i] = 3 + 2sz[i-1];
    p[i] = 1 + 2p[i-1];
  }

  while(N){
    X--;
    if(X==0) break;

    if(X < sz[N-1]){ N--; continue; }

    X -= sz[N-1];
    res += p[N-1];
    if(X==0) break;

    X--;
    res++;
    if(X==0) break;

    if(X < sz[N-1]){ N--; continue; }
    X -= sz[N-1];
    res += p[N-1];
    if(X==0) break;

    X--;
    if(X==0) break;
  }
  if(X==1) res++;

  wt(res);
}

Current time: 2021年09月19日20時04分36秒
Last modified: 2019年07月15日22時37分46秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC115 ABC_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: