Submission #1135719

#TimeUsernameProblemLanguageResultExecution timeMemory
1135719tjonacJob Scheduling (CEOI12_jobs)C++20
20 / 100
93 ms13892 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ll long long #define MOD 998244353 #define mod 1000000007 #define INF 1000000000000000 #define inf 1000000000 //#define f first //#define s second bool check(int k,int d, vector<int>& jobs){ int n=jobs.size(),l=1,curr=jobs[1]; for(int i=1;i<n-d;i++){ for(int j=0;j<k;j++){ if(curr==0){ l++; curr=jobs[l]; } if(l+d<i) return false; if(l>i) break; curr--; } } return true; } int bin_search(int d, vector<int>& jobs){ int l=1, r=2000000,res=-1; while(l<=r){ int mid=l+(r-l)/2; if(check(mid,d,jobs)){ res=mid; r=mid-1; } else l=mid+1; } return res; } void solve(){ int n,d,m; cin>>n>>d>>m; vector<int> jobs(n+1,0); vector<vector<int>> jobsindex(n+1); for(int i=0;i<m;i++){ int a; cin>>a; jobs[a]++; jobsindex[a].pb(i+1); } int k=bin_search(d,jobs),l=1,r=0; cout<<k<<'\n'; for(int i=1;i<=n;i++){ for(int j=0;j<k;j++){ while(r==jobs[l]){ l++; r=0; } if(l>i) break; cout<<jobsindex[l][r]<<' '; r++; } cout<<"0\n"; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t=1; for(int T=0;T<t;T++) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...