結果

問題 No.2330 Eat Slime
ユーザー googol_S0googol_S0
提出日時 2023-05-28 14:36:06
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 997 ms / 4,000 ms
コード長 667 bytes
コンパイル時間 5,008 ms
コンパイル使用メモリ 311,708 KB
実行使用メモリ 47,628 KB
最終ジャッジ日時 2024-12-27 02:09:00
合計ジャッジ時間 27,407 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
#include<atcoder/all>
using namespace atcoder;
typedef long long ll;

int main(){
  int N,M;
  ll x;
  cin>>N>>M>>x;
  vector<int> C(N);
  vector<vector<ll>> X(5,vector<ll>(N+1,0));
  for(int i=0;i<N;i++){
    cin>>C[i];
    C[i]--;
    X[C[i]][i+1]=1;
  }
  vector<vector<ll>> Y(5,vector<ll>(N+1,0));
  for(int i=0;i<M;i++){
    int a,b;
    ll y;
    cin>>a>>b>>y;
    b--;
    Y[b][N-a]+=y;
  }
  vector<vector<ll>> Z(5);
  for(int i=0;i<5;i++){
    Z[i]=convolution_ll(X[i],Y[i]);
  }
  ll ANS=0;
  for(int i=0;i<=N;i++){
    ANS=max(ANS,i*x+Z[0][N+i]+Z[1][N+i]+Z[2][N+i]+Z[3][N+i]+Z[4][N+i]);
  }
  cout<<ANS<<endl;
}
0