Submission #853168

#TimeUsernameProblemLanguageResultExecution timeMemory
853168mall0809Job Scheduling (CEOI12_jobs)C++17
0 / 100
329 ms65536 KiB
#include <bits/stdc++.h> #define __gcd() gcd() #define C int(1e6+7) #define M int(1e9+7) #define el '\n' #define all(a) a.begin(),a.end() #define pb push_back using namespace std; typedef long long ll; vector<int> res[C],tmp[C]; int main(){ //ios_base::sync_with_stdio(false); //cin.tie(0);cout.tie(0); //freopen("","r",stdin); //freopen("","w",stdout); int n,d,m;cin>>n>>d>>m; vector<array<int,2>> a(m);for(int i=0;i<m;i++)cin>>a[i][0],a[i][1] = i; sort(all(a)); int l=1,r=1e7; auto check = [&](int mid){ int id = 0,cnt=mid; for(int i=1;i<=n && id < m;i++){ if(i > a[id][0] + d)return false; while(id < m && a[id][0] <= i && cnt>=1)tmp[i].pb(a[id][1]+1),cnt--,id++; cnt = mid; } for(int i=1;i<=n;i++)res[i]=tmp[i]; for(int i=1;i<=n;i++)tmp[i].clear(); return true; }; while(l<r){ int mid=(l+r)/2; // cout<<'#'<<mid<<el; if(check(mid))r=mid; else { for(int i=1;i<=n;i++)tmp[i].clear(); l= mid+1; } } cout<<r<<el; for(int i=1;i<=n;i++){ for(auto it:res[i])cout<<it<<' '; cout<<0<<el; } }
#Verdict Execution timeMemoryGrader output
Fetching results...