제출 #1285658

#제출 시각아이디문제언어결과실행 시간메모리
1285658MasterMoonJob Scheduling (CEOI12_jobs)C++20
55 / 100
206 ms13800 KiB
#include <bits/stdc++.h> using namespace std; #define __Master_Moon__ int main() #define ll long long #define el "\n" #define fi first #define sq(x) (x)*(x) #define se second #define pub push_back #define puf push_front #define pii pair <int, int> #define pll pair <long long, long long> #define piii pair <int, pair <int, int>> #define iiii pair <int, pair <int, pair <int, int>>> #define plll pair <long long, pair <long long, long long>> #define FOR(i, a, b) for(ll i = (a);i <=(b);i++) #define FO(i, a, b) for(int i = (a);i >= (b);i--) #define REP(i, n) for(int i = 0;i < (n);i++) long const maxn = 1e6+5; ll n,m,k,ans; pii a[maxn]; bool check(int val) { FOR(i,1,m) { int tmp = (i-1) / val + 1; if(tmp - a[i].fi > k) return false; } return true; } void solve() { cin >> n >> k >> m; FOR(i,1,m) { cin >> a[i].fi; a[i].se = i; } sort(a+1,a+m+1); ll l = 1,r = m; while(l<=r) { ll mid = (l+r)/2; if(n*mid >= m && check(mid)) { ans = mid; r = mid -1; } else l = mid + 1; } cout << ans << el; REP(i,n) { ll tmp = ans*i; ll j = tmp + 1; while(j <= m && j <= tmp+ans) { cout << a[j].se << ' '; j++; } cout << 0 << el; } } __Master_Moon__ { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...