結果

問題 No.3297 Bake Cookies
コンテスト
ユーザー Nguyễn Phúc Gia Nghi
提出日時 2026-01-06 19:25:27
言語 C++14
(gcc 15.2.0 + boost 1.89.0)
結果
WA  
実行時間 -
コード長 1,590 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,651 ms
コンパイル使用メモリ 189,592 KB
実行使用メモリ 16,000 KB
最終ジャッジ日時 2026-01-06 19:25:49
合計ジャッジ時間 12,597 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 21 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

    #include <bits/stdc++.h>
    using namespace std;

    #define el '\n'
    #define fi first
    #define se second
    #define pub push_back
    #define pob pop_back
    #define pii pair<int, int>
    #define float long double
    #define int long long

    const int mxn = 2e5 + 5;
    const int inf = 1e17;

    int n, m, k;
    map<int, int> a;

    bool check(int mid) {
        int tobep2 = 0;
        int freefor = 0;

        for (auto p: a) {
            if (p.se > mid) tobep2 += p.se - mid;
            if (p.se < mid) freefor += (mid - p.se) / k;
        }

        return tobep2 <= freefor;
    }

    void solve() {
        cin >> n >> m >> k;

        for (int i = 1; i <= n; i++) a[i] = 0;

        for (int i = 1, t; i <= m; i++) {
            cin >> t; a[t]++;
        }

        int lo = 1, hi = inf;
        int ans = -1;

        while (lo <= hi) {
            int mid = lo + (hi - lo) / 2;

    //        cout << lo << ' ' << hi << el;

            if (check(mid)) {
                ans = mid;
                hi = mid - 1;
            } else {
                lo = mid + 1;
            }
        }

        cout << ans;

    //    for (int i = 1; i <= 10; i++) {
    //        cout << i << ' ';
    //        check(i);
    //    }
    }

    signed main() {
        cin.tie(0) -> sync_with_stdio(0);

        #define fname "cake"
        if (fopen(fname".inp", "r")) {
            freopen(fname".inp", "r", stdin);
            freopen(fname".out", "w", stdout);
        }

        int t = 1;
    //    cin >> t;

        for (int i = 1; i <= t; i++) solve();
    }
0