結果
| 問題 | No.935 う し た ぷ に き あ く ん 笑 ビ - ム | 
| コンテスト | |
| ユーザー |  shop_one | 
| 提出日時 | 2020-02-20 21:52:09 | 
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 922 bytes | 
| コンパイル時間 | 630 ms | 
| コンパイル使用メモリ | 67,776 KB | 
| 実行使用メモリ | 6,820 KB | 
| 最終ジャッジ日時 | 2024-10-08 19:14:48 | 
| 合計ジャッジ時間 | 2,924 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 57 WA * 1 | 
ソースコード
// I SELL YOU...! 
#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
#include<queue>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
signed main(){
  ll n,q,ans,k,le,ri,v;
  string s;
  cin >> n >> s;
  ll a[n];
  ll cnt[n+1];
  fill(cnt,cnt+n+1,0);
  for(int i=0;i<n;i++){
    cin >> a[i];
    if(s[i]=='E'){
      cnt[i]++;
    }
    if(i!=0)cnt[i]+=cnt[i-1];
  }
  cin >> q;
  ll tmp;
  for(int i=0;i<q;i++){
    cin >> k;
    ans = 0;
    le=0;
    ri=0;
    v=0;
    while(ri<n){
      if(v<=k&&ri!=0){
        tmp = cnt[ri-1];
        if(le!=0) tmp-=cnt[le-1];
//        cout << le<<" "<<ri<<" "<<tmp<<endl;
        ans = max(ans,tmp);
      }
      if(v<=k||ri==le){
        v += a[ri++];
      }else{
        v -= a[le++];
      }
    }
    if(v<=k){
      tmp = cnt[ri-1];
      if(le!=0) tmp-=cnt[le-1];
      ans = max(tmp,ans);
    }
    cout << ans << endl;
  }
}
            
            
            
        