Submission #744283

#TimeUsernameProblemLanguageResultExecution timeMemory
744283vjudge1Job Scheduling (CEOI12_jobs)C++17
100 / 100
178 ms14520 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long ; using pii = pair<ll , ll> ; using i3 = tuple<ll , ll , ll> ; const int N = 1e6+5 ; const int MOD = 1e9+7 ; ll n , d , m ; pii S[N] ; bool solve(ll mid){ ll day = 1 , cnt = 0 ; for(int i=1;i<=m;i++){ if(day < S[i].first){ day = S[i].first ; cnt = 0 ; } if(day <= S[i].first + d){ // do job i-th cnt++ ; } else { return false ; } if(cnt == mid){ day++; cnt = 0 ; } } if(cnt == 0) day--; return day <= n ; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> d >> m ; for(int i=1, x;i<=m;i++){ cin >> x ; S[i] = {x , i}; } sort(S+1 , S+m+1) ; ll l = 1 , r = m , ans = 0 ; while(l <= r){ ll mid = (l+r)/2 ; if(solve(mid)){ r = mid-1 ; ans = mid ; } else { l = mid+1 ; } } cout << ans << "\n" ; for(int i=1;i<=n;i++){ cout << "0\n" ; } }
#Verdict Execution timeMemoryGrader output
Fetching results...