結果
問題 | No.2601 Very Poor |
ユーザー | daiota |
提出日時 | 2024-01-12 22:48:05 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 47 ms / 2,000 ms |
コード長 | 612 bytes |
コンパイル時間 | 1,420 ms |
コンパイル使用メモリ | 170,076 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-09-30 06:28:01 |
合計ジャッジ時間 | 3,551 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> P; #define REP(i,n) for(ll i=0;i<ll(n);i++) ll A[400010]; int main(void){ cin.tie(nullptr); ios_base::sync_with_stdio(false); ll i,j; ll N,X; cin >> N >> X; vector<ll> A(2*N+1,0); for(i=1;i<=N;i++){ cin >> A[i]; A[i+N]=A[i]; } for(i=1;i<=2*N;i++) A[i]+=A[i-1]; ll mx=0; for(i=1;i<=2*N;i++){ ll x=upper_bound(A.begin(),A.end(),A[i-1]+X)-A.begin(); if(x>=i+N) mx=A[N]; else if(x==2*N+1) mx=max(mx,A[2*N]-A[i-1]); else mx=max(mx,A[x-1]-A[i-1]); } cout << mx << endl; return 0; }