結果
問題 |
No.3297 Bake Cookies
|
ユーザー |
|
提出日時 | 2025-10-05 13:51:25 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 144 ms / 2,000 ms |
コード長 | 690 bytes |
コンパイル時間 | 1,945 ms |
コンパイル使用メモリ | 202,592 KB |
実行使用メモリ | 17,664 KB |
最終ジャッジ日時 | 2025-10-05 13:52:22 |
合計ジャッジ時間 | 5,761 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ int n,m,t; cin>>n>>m>>t; if(n==1){ cout<<m<<endl; return 0; } int a[m]; for(int i=0;i<m;i++) cin>>a[i],a[i]--; multiset<tuple<int,int,int>> ms; int memo[n]{}; for(int i=0;i<m;i++) memo[a[i]]++; for(int i=0;i<n;i++) ms.insert({memo[i],memo[i],0}); while(true){ auto itr1=ms.begin(); auto itr2=ms.end(); itr2--; auto [c1,a1,t1]=*itr1; auto [c2,a2,t2]=*itr2; if(a2==0){ break; } if(c2-1>=c1+t){ ms.erase(itr1); ms.erase(itr2); ms.insert({c1+t,a1,t1+1}); ms.insert({c2-1,a2-1,t2}); } else break; } cout<<get<0>(*ms.rbegin())<<endl; }