結果

問題 No.1705 Mode of long array
コンテスト
ユーザー harurun
提出日時 2021-09-19 17:13:24
言語 C++17(gcc12)
(gcc 12.4.0 + boost 1.89.0)
コンパイル:
g++-12 -O2 -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 1,510 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 6,738 ms
コンパイル使用メモリ 337,080 KB
実行使用メモリ 22,688 KB
最終ジャッジ日時 2026-06-23 05:32:53
合計ジャッジ時間 15,417 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 51
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include "testlib.h"
#include <bits/stdc++.h>
#include <assert.h>
using namespace std;
using ll=long long;

const ll MIN_N=1;
const ll MAX_N=500000000000000000LL;
const ll MIN_M=1;
const ll MAX_M=100000;
const ll MIN_A=0;
const ll MIN_Q=1;
const ll MAX_Q=100000;
const ll MIN_T=1;
const ll MAX_T=3;
const ll MIN_X=1;
const ll MIN_Y=1;
const ll MAX_Y=1000000000000LL;


int main(){
  registerValidation();
  ll N,M;
  N=inf.readLong(MIN_N,MAX_N);
  inf.readSpace();
  M=inf.readLong(MIN_M,MAX_M);
  inf.readEoln();
  
  vector<ll>a(M);
  ll sum=0;
  for(ll i=0;i<M;i++){
    a.at(i)=inf.readLong(MIN_A,N);
    sum+=a.at(i);
    if(i!=M-1){
      inf.readSpace();
    }
  }
  inf.readEoln();
  
  assert(sum==N);

  ll cnt=0;
  for(ll i=0;i<M;i++){
    if(a.at(i)>0){
      cnt++;
    }
  }
  bool flag=false;
  ll Q;
  Q=inf.readLong(MIN_Q,MAX_Q);
  inf.readEoln();
  for(ll i=0;i<Q;i++){
    ll T,X,Y;
    T=inf.readLong(MIN_T,MAX_T);
    inf.readSpace();
    if(T==1){
      X=inf.readLong(MIN_X,M);
      inf.readSpace();
      Y=inf.readLong(MIN_Y,MAX_Y);
      if(a.at(X-1)==0){
        cnt++;
      }
      a.at(X-1)+=Y;
    }else if(T==2){
      X=inf.readLong(MIN_X,M);
      inf.readSpace();
      Y=inf.readLong(MIN_Y,MAX_Y);
      a.at(X-1)-=Y;
      if(a.at(X-1)==0){
        cnt--;
      }
    }else{
      X=inf.readLong(0LL,0LL);
      inf.readSpace();
      Y=inf.readLong(0LL,0LL);
      flag=true;
    }
    inf.readEoln();
    assert(cnt>0);
  }
  assert(flag);
  inf.readEof();
  return 0;
}
0