結果

問題 No.3297 Bake Cookies
ユーザー Today03
提出日時 2025-10-05 13:51:05
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
RE  
実行時間 -
コード長 1,212 bytes
コンパイル時間 2,583 ms
コンパイル使用メモリ 281,388 KB
実行使用メモリ 8,448 KB
最終ジャッジ日時 2025-10-05 13:51:16
合計ジャッジ時間 6,584 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 9 WA * 8 RE * 10
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define ALL(x) (x).begin(), (x).end()
#define REP(i,n) for(int i=0; i<n; i++)
bool chmax(auto& a, auto b) { return a<b ? a=b, true : false; }
bool chmin(auto& a, auto b) { return a>b ? a=b, true : false; }
using ll=long long; const int INF=1e9+10; const ll INFL=4e18;

#ifdef DEBUG
#include "./debug.hpp"
#else
#define debug(...)
#define print_line
#endif

//----------------------------------------------------------

void solve() {
    ll N,M,T; cin>>N>>M>>T;
    vector<int> A(M); REP(i,N) cin>>A[i], A[i]--;
    vector<int> cnt(N); REP(i,M) cnt[A[i]]++;

    ll lo=0, hi=M+1;
    while(hi-lo>1) {
        ll mid=(hi+lo)/2;

        ll amari=0;
        vector<ll> yoyuu;
        REP(i,N) {
            if(cnt[i]>mid) amari+=cnt[i]-mid;
            else if(cnt[i]<mid) yoyuu.push_back(mid-cnt[i]);
        }

        debug(mid,yoyuu,amari);
        for(ll x: yoyuu) {
            if(amari<=0) break;
            amari-=x/T;
        }

        if(amari<=0) hi=mid;
        else lo=mid;
    }

    cout<<hi<<endl;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(nullptr);
    //cout<<fixed<<setprecision(15);
    int T=1; //cin>>T;
    while(T--) solve();
}
0