Submission #1091092

#TimeUsernameProblemLanguageResultExecution timeMemory
1091092androJob Scheduling (CEOI12_jobs)C++17
0 / 100
90 ms7644 KiB
#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int m, d, n;
    cin >> m >> d >> n;
    vector<int> a(n + 1);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    sort(a.begin() + 1, a.end());
    int l = 1, r = n, ans = - 1;
    vector<int> br(m + 1, 0);
    for(int i = 1; i <= n; i++) {
        br[a[i]] += 1;
    }
    while(l <= r) {
        int mid = (l + r) / 2;
        int p = 1;
        int ok = 1;
        while(p <= m) {
            if(! br[p]) {
                p += 1;
                continue;
            }
            int trebam = br[p] / mid;
            if(br[p] % mid) {
                trebam += 1;
            }
            if(p + trebam > p + d) {
                ok = 0;
                break;
            }
            else {
                p += 1;
            }
        }
        if(ok) {
            r = mid - 1;
            ans = mid;
        }
        else {
            l = mid + 1;
        }
    }
    cout << ans;
}
/*

*/
#Verdict Execution timeMemoryGrader output
Fetching results...