Submission #1280614

#TimeUsernameProblemLanguageResultExecution timeMemory
1280614yinterceptJob Scheduling (CEOI12_jobs)C++20
55 / 100
292 ms16492 KiB
#include<bits/stdc++.h> #include<vector> typedef long long ll; using namespace std; ll ar[100004]; ll tempar[100004]; ll n,d,m; vector<ll> days[100004]; bool check(ll mac); void out(ll ans); int main(){ cin>>n>>d>>m; ll l,r,temp,mid; for (ll i=1;i<=m;i++){ cin>>temp; ar[temp+d]++; days[temp+d].push_back(i); } l=1; r=m; while (l<=r){ mid=(l+r)/2; if (check(mid)){ r=mid-1; } else{ l=mid+1; } } cout<<l<<endl; out(l); return 0; } bool check(ll mac){ for(ll i = 1; i <= n; i++) { tempar[i] = ar[i]; } ll macleft; ll cur=1; for (ll i=1;i<=n;i++){ macleft=mac; while (macleft>0 && cur<=n){ if (tempar[cur]>0){ tempar[cur]--; macleft--; } else{ cur++; } } if (tempar[i]!=0){ return 0; } } return 1; } void out(ll ans){ ll macleft; ll cur=1; ll temp; for (ll i=1;i<=n;i++){ macleft=ans; while (macleft>0 && cur<=n){ if (ar[cur]>0){ temp=days[cur][days[cur].size()-1]; days[cur].pop_back(); cout<<temp<<" "; ar[cur]--; macleft--; } else{ cur++; } } cout<<0<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...