Submission #744284

#TimeUsernameProblemLanguageResultExecution timeMemory
744284MODDIJob Scheduling (CEOI12_jobs)C++14
0 / 100
286 ms7332 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair typedef long long ll; typedef pair<long long, long long> pll; typedef pair<int,int> pii; typedef vector<long long> vl; typedef vector<int> vi; int n, d, m; vector<pii> arr; bool check(int machines){ int job = m-1; for(int day = n; day >= 1; day--){ int cnt = 0; while(arr[job].first - day <= d && cnt + 1 <= machines){ job--; cnt++; } if(job < 0) return true; } return false; } int main(){ cin>>n>>d>>m; arr.resize(m); for(int i = 0; i < m; i++) { cin>>arr[i].first; arr[i].second = i; } sort(arr.begin(), arr.end()); int l = 1, r = n, ans = -1; while(l <= r){ int mid = (l + r) / 2; bool can = check(mid); if(can){ ans = mid; r = mid - 1; } else l = mid + 1; } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...