Submission #1185000

#TimeUsernameProblemLanguageResultExecution timeMemory
1185000inesfiJob Scheduling (CEOI12_jobs)C++20
0 / 100
52 ms12872 KiB
#include<bits/stdc++.h>
using namespace std;

#define endl "\n"
#define int long long

const int TAILLEMAXI=100*1000+2;
vector<int> req[TAILLEMAXI];

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int nbjours,delaimax,nbreq;
    cin>>nbjours>>delaimax>>nbreq;
    for (int i=0;i<nbreq;i++){
        int val;
        cin>>val;
        req[val].push_back(i+1);
    }
    int deb=0,fin=nbreq;
    while (deb<fin){
        int milieu=(deb+fin)/2;
        int pb=0;
        int j=0,encore=0;
        for (int i=0;i<nbjours;i++){
            if (j<i){
                j=i;
                encore=0;
            }
            j+=(req[i].size()+encore)/milieu;
            encore=(req[i].size()+encore)%milieu;
            if (j+min(encore,(int)1)>i+delaimax){
                pb=1;
            }
        }
        if (pb==0){
            fin=milieu;
        }
        else {
            deb=milieu+1;
        }
    }
    cout<<deb<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...