Submission #934438

#TimeUsernameProblemLanguageResultExecution timeMemory
934438tamir1Job Scheduling (CEOI12_jobs)C++14
100 / 100
211 ms21300 KiB
#include<bits/stdc++.h> #define ff first #define ss second #define ll long long using namespace std; ll i,n,d,m,l,r,mid,ans; pair<ll,ll> a[1000005]; bool check(ll mid){ ll i,j,day=0; i=1; while(i<=m){ day++; for(j=i;j<i+mid && j<=m;j++){ if(a[j].ff>day) break; if(day>a[j].ff+d) return 0; } i=j; } return 1; } void solve(ll x){ ll i,j,day=0; i=1; while(i<=m){ day++; for(j=i;j<i+x && j<=m;j++){ if(a[j].ff>day) break; cout << a[j].ss << " "; } i=j; cout << 0 << "\n"; } for(i=day+1;i<=n;i++){ cout << 0 << "\n"; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> d >> m; for(i=1;i<=m;i++){ cin >> a[i].ff; a[i].ss=i; } sort(a+1,a+m+1); l=1; r=m; while(r-l>1){ mid=(r+l+1)/2; if(check(mid)) r=mid; else l=mid; } if(check(l)) ans=l; else ans=r; cout << ans << "\n"; solve(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...