제출 #1285551

#제출 시각아이디문제언어결과실행 시간메모리
1285551xnoelJob Scheduling (CEOI12_jobs)C++20
60 / 100
318 ms20948 KiB
#include <bits/stdc++.h> using namespace std; long long n,delay,m; map<long long,long long> mp; vector<pair<long long,long long>> vp; bool alg(long long x){ if (n*x<m) return false; long long preday=0,leftover=0; for (auto [day,count]: mp){ leftover= max(leftover+count-(day-preday)*x,0LL); if (leftover>x*delay) return false; preday=day; } if (preday+(leftover+x-1)/x>n) return false; return true; } int main(){ cin>>n>>delay>>m; for (long long i=0;i<m;i++) { long long day; cin>>day; mp[day]++; vp.push_back({day,i+1}); } sort(vp.begin(),vp.end()); // for (auto x: mp) cout<<x.first<<" "<<x.second<<"\n"; // cout<<"\n"; long long low=1,high=m; while (low<high){ long long mid=(low+high)/2; if (alg(mid)) high=mid; else low=mid+1; } cout<<low<<"\n"; for (long long i=0;i<n;i++){ for (long long j=0;j<low;j++){ long long idx=i*low+j; if (idx>=m) { break; } cout<<vp[idx].second<<" "; } cout<<"0\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...