結果

問題 No.973 余興
ユーザー amaridekinai
提出日時 2020-01-17 22:53:44
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 817 bytes
コンパイル時間 1,605 ms
コンパイル使用メモリ 169,628 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-25 23:22:51
合計ジャッジ時間 3,069 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 27 WA * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int main(){ 
  
  ll N,X; cin >> N >> X;
  
  vector<ll> a(N);
  
  for(ll i = 0; i < N; i++){ cin >> a[i];}
  
  ll left = 0; ll right = N-1; //現在食べられる部分を指す
  
  int turn = 0;
  
  while( right - left > 1){ //二分探索ではない
    
    ll cnt1 = 0,cnt2 = 0;
    ll res1 = 0,res2 = 0;
    
    ll l = left;
    
    while( l < N && res1+a[l] <= X && right > l){ res1 += a[l]; l++; cnt1++;}
    
    ll r = right;
    
    while( r >= 0 && res2+a[r] <= X && r > left ){ res2 += a[r]; r--; cnt2++;}
    
    if( cnt1 >= cnt2){ //左を食べる
      left = l;
    }
    else{
      right = r;
    }
  
  
  turn++;
    
  }
  
  if( turn % 2 == 1 ){ cout <<"A" << endl;}
  else{ cout << "B" << endl;}
  
  return 0;
}
0