제출 #83817

#제출 시각아이디문제언어결과실행 시간메모리
83817mra2322001Job Scheduling (CEOI12_jobs)C++14
0 / 100
255 ms21308 KiB
#include <bits/stdc++.h> #define f0(i, n) for(int i(0); i < (n); i++) #define f1(i, n) for(int i(1); i <= n; i++) using namespace std; typedef long long ll; const int N = 100002; int n, d, m; pair <int, int> a[N]; vector <vector <int> > v, b; bool check(int x){ f1(i, n) v[i].clear(); int ma = n - d, cur = 0; f1(i, m){ cur++; if(cur <= x){ v[ma].emplace_back(a[i].second); } else{ cur = 1; ma--; if(ma==0) return 0; v[ma].emplace_back(a[i].second); } } return 1; } int main(){ ios_base::sync_with_stdio(0); cin >> n >> d >> m; v.resize(n + 1); b.resize(n + 1); f1(i, m){ int x; cin >> x; a[i] = {x, i}; } sort(a + 1, a + m + 1); int l = 1, r = n, ans = n; while(l <= r){ int mid = (l + r)/2; if(check(mid)){ r = mid - 1, ans = mid; f1(i, n){ b[i].clear(); for(auto x:v[i]){ b[i].emplace_back(x); } } } else l = mid + 1; } cout << ans << endl; f1(i, n){ for(auto x:b[i]) cout << x << " "; cout << 0 << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...