제출 #525917

#제출 시각아이디문제언어결과실행 시간메모리
525917pawnedJob Scheduling (CEOI12_jobs)C++17
0 / 100
429 ms4400 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back typedef long long ll; typedef pair<int, int> ii; typedef vector<int> vi; int N, D, M; // days, max delay, reqs int numbers[1000050]; bool check(int n) { // checks if n machines is enough int needed[N] = {0}; for (int i = 0; i < M; i++) { // finds earliest possible time for each int day = numbers[i]; while (needed[day] == n) day++; if (day - numbers[i] > D) return false; needed[day]++; } return true; } int main() { cin>>N>>D>>M; for (int i = 0; i < M; i++) { cin>>numbers[i]; } sort(numbers, numbers + M); int low = 0; int high = 1e9; int ans = -1; while (low <= high) { // false, false, false, true, true, true int mid = (low + high) / 2; if (check(mid)) { ans = mid; high = mid - 1; } else { low = mid + 1; } } cout<<ans<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...