Submission #1280613

#TimeUsernameProblemLanguageResultExecution timeMemory
1280613yinterceptJob Scheduling (CEOI12_jobs)C++20
55 / 100
285 ms11680 KiB
#include<bits/stdc++.h> #include<vector> using namespace std; int ar[100004]; int tempar[100004]; int n,d,m; vector<int> days[100004]; bool check(int mac); void out(int ans); int main(){ cin>>n>>d>>m; int l,r,temp,mid; for (int 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(int mac){ for(int i = 1; i <= n; i++) { tempar[i] = ar[i]; } int macleft; int cur=1; for (int 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(int ans){ int macleft; int cur=1; int temp; for (int 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...