Submission #535353

#TimeUsernameProblemLanguageResultExecution timeMemory
535353PyrodoxJob Scheduling (CEOI12_jobs)C++17
0 / 100
785 ms65536 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; bool cmp(const vector<ll>& a, const vector<ll>& b) { return a[0] < b[0]; } int main() { ll n, d, m; ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> d >> m; vector<vector<ll>> jobs(m); for (ll i = 1; i <= m; ++i) { ll a; cin >> a; jobs[i - 1] = {a, i}; } sort(jobs.begin(), jobs.end(), cmp); vector<vector<ll>> ans; ll l = 1, r = m; while (l < r) { ll mid = l + (r - l) / 2, start = 0; //cout << "testing mid: " << mid << "\n"; //bool check = true; vector<vector<ll>> jobstmp(n); for (ll i = 0; i < n; ++i) { //cout << "a\n"; for (ll j = 0; j < mid && start <= m - 1; ++j) { //cout << "bat\n"; if (jobs[start][0] <= i + 1) { jobstmp[i].push_back(jobs[start][1]); ++start; //cout << "at\n"; } else { break; } } //cout << "heree\n"; jobstmp[i].push_back(0); //cout << "h\n"; } /*for (auto val : jobstmp) { for (ll i : val) { cout << i << " "; } cout << "\n"; }*/ //cout << "start: " << start << " check: " << "\n"; if (start == m) { //cout << "r from " << r << " to r -> " << mid << "\n"; r = mid; ans = jobstmp; } else { //cout << "l from " << l << " to l -> " << mid << " + 1\n"; l = mid + 1; } } cout << l << "\n"; for (auto i : ans) { for (ll j : i) { cout << j << " "; } cout << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...