yukicoder No.1267 - Stop and Coin Game

Source

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

問題概要

省略

解法

省略

cLayversion 20201018-2)のコード

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

int N; ll V, A[20];
char ok[12d5], dp[12d5];
{
  rd(N,V,A(N));
  rep(mask,1<<N){
    ll s = 0;
    rep(i,N) if(BIT_ith(mask,i)) s += A[i];
    if(s <= V) ok[mask] = 1;
  }
  if(ok[(1<<N)-1]) wt("Draw"), return 0;

  rrep(mask,1<<N){
    if(!ok[mask]) dp[mask] = 1, continue;
    rep(i,N) if(!BIT_ith(mask,i) && dp[mask^(1<<i)] == 0) dp[mask] = 1, break;
  }

  wt(if[dp[0], "First", "Second"]);
}

Current time: 2024年04月25日23時24分00秒
Last modified: 2020年10月24日18時42分59秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: