Submission #854389

#TimeUsernameProblemLanguageResultExecution timeMemory
854389anhphantJob Scheduling (CEOI12_jobs)C++14
0 / 100
11 ms1628 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll N, D, M, A[100007]; void initialize() { ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> D >> M; for(int i = 1; i <= M; ++i) { cin >> A[i]; } sort(A + 1, A + 1 + M); //for(int i = 1; i <= M; ++i) cerr << A[i] << " "; cerr << endl; } bool check(ll MachinesCnt) { //cerr << "MachinesCnt = " << MachinesCnt << endl; int idx = 1; for(int day = 1; day <= N; ++day) { //cerr << "Day " << day << " : " << endl; ll used_machines_in_day = 0; while(idx <= M && used_machines_in_day < MachinesCnt) { if (day < A[idx] || A[idx] + D < day) break; //cerr << "job " << idx << " is going to work with time at " << A[idx] << endl; used_machines_in_day++; idx++; } //cerr << "used_machines_in_day : " << used_machines_in_day << endl; //cerr << "used_machines_all_times : " << idx - 1 << endl; //cerr << endl; } return idx > M; } void process() { ll l = 1, r = N; while(l < r) { ll mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid + 1; } cout << l; } int main() { initialize(); process(); }
#Verdict Execution timeMemoryGrader output
Fetching results...