제출 #1196331

#제출 시각아이디문제언어결과실행 시간메모리
1196331dostsJob Scheduling (CEOI12_jobs)C++20
50 / 100
203 ms35080 KiB
#include <bits/stdc++.h> #pragma GCC target("lzcnt,popcnt") #pragma GCC optimize("O3,unroll-loops") #define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define all(x) x.begin(),x.end() #define sp << " " << using namespace std; const int inf = 2e18; const int N = 2e5+1; void solve() { int n,d,m; cin >> n >> d >> m; vector<pii> v; for (int i=1;i<=m;i++){ int x; cin >> x; v.push_back({x,i}); } sort(all(v)); reverse(all(v)); vector<pii> vv = v; auto check = [&](int mach,int construct) -> bool { v = vv; if (construct) cout << mach << '\n'; for (int i = 1;i<=n;i++) { int sz = v.size(); for (int j = 0;j<min(sz,mach);j++) { if (v.back().ff+d < i) return 0; if (construct) cout << v.back().ss << ' '; v.pop_back(); } if (construct) cout << "0\n"; } if (!v.empty()) return 0; return 1; }; int l = 0; int r = m; while (l<=r) { int m = (l+r) >> 1; if (check(m,0)) r = m-1; else l = m+1; } check(l,1); } signed main() { ios_base::sync_with_stdio(0);cin.tie(0); #ifdef Dodi freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t = 1; //cin >> t; while (t --> 0) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...