結果
問題 |
No.3297 Bake Cookies
|
ユーザー |
|
提出日時 | 2025-10-05 14:30:53 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 1,054 bytes |
コンパイル時間 | 1,034 ms |
コンパイル使用メモリ | 107,220 KB |
実行使用メモリ | 8,168 KB |
最終ジャッジ日時 | 2025-10-05 14:32:04 |
合計ジャッジ時間 | 3,064 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
#include <iostream> #include <iomanip> #include <vector> #include <algorithm> #include <utility> #include <string> #include <queue> #include <stack> #include <unordered_set> #include <unordered_map> using namespace std; typedef long long int ll; typedef pair<int, int> Pii; const ll mod = 998244353; int main() { cin.tie(0); ios::sync_with_stdio(false); int n, m, t; cin >> n >> m >> t; vector<int> a(m); for (auto &x: a) cin >> x; vector<int> init_t(n, 0); for (auto &x: a) { init_t[x-1]++; } priority_queue<Pii> que_hi; priority_queue<Pii, vector<Pii>, greater<Pii>> que_lo; for (int i = 0; i < n; i++) { que_hi.emplace(init_t[i], i); que_lo.emplace(init_t[i], i); } while (true) { auto [lo_val, lo_idx] = que_lo.top(); auto [hi_val, hi_idx] = que_hi.top(); que_lo.pop(); que_hi.pop(); if (lo_val + t < hi_val) { que_lo.emplace(lo_val + t, lo_idx); que_hi.emplace(hi_val - 1, hi_idx); } else { cout << hi_val << endl; return 0; } } return 0; }