結果
問題 | No.2549 Paint Eggs |
ユーザー |
|
提出日時 | 2025-03-31 23:03:54 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 394 ms / 2,000 ms |
コード長 | 786 bytes |
コンパイル時間 | 3,440 ms |
コンパイル使用メモリ | 281,468 KB |
実行使用メモリ | 17,280 KB |
最終ジャッジ日時 | 2025-03-31 23:04:13 |
合計ジャッジ時間 | 15,057 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 45 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll=long long; void solve(){ ll N,M,K; cin>>N>>M>>K; ll S=0; vector<ll> C(M,0); multiset<ll> MS; vector<ll> P(N),Q(M); for(ll i=0;i<N;i++){ cin>>P[i]; P[i]--; } for(ll i=0;i<M;i++){ cin>>Q[i]; } for(int i=0;i<M;i++){ MS.insert(Q[i]*K); C[i]=Q[i]*K; } for(ll i=0;i<K;i++){ MS.erase(MS.find(C[P[i]])); C[P[i]]-=Q[P[i]]; MS.insert(C[P[i]]); } ll an=*(MS.begin()); for(int i=0;i<N-K;i++){ MS.erase(MS.find(C[P[i]])); C[P[i]]+=Q[P[i]]; MS.insert(C[P[i]]); MS.erase(MS.find(C[P[i+K]])); C[P[i+K]]-=Q[P[i+K]]; MS.insert(C[P[i+K]]); an=min(an,*(MS.begin())); } cout<<an<<endl; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int T=1; // cin>>T; while(T--)solve(); }