제출 #743318

#제출 시각아이디문제언어결과실행 시간메모리
743318vjudge1Job Scheduling (CEOI12_jobs)C++17
0 / 100
15 ms1712 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 1; const int M = 1e6 + 1; int dp[N] , arr[M] , pre[N]; int n,m,d; bool solve(int mid) { for(int i=1;i<=n;i++) dp[i] = 0, pre[i] = i; for(int i=1;i<=m;i++) dp[arr[i]]++; for(int i=1;i<=m;i++) { if (dp[i] > mid) { if ((i+1)-pre[i] > mid) return false; pre[i+1] = pre[i]; dp[i+1] += dp[i] - mid; } } return dp[m+1]==0; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> m >> d >> n; for(int i=1;i<=m;i++) cin >> arr[i]; int l = 1 , r = N; while (l < r) { int mid = (l + r) / 2; if (solve(mid)) r = mid; else l = mid + 1; } cout << l << '\n'; for(int i=1;i<=n;i++) cout << "0\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...