Submission #743207

#TimeUsernameProblemLanguageResultExecution timeMemory
743207vjudge1Job Scheduling (CEOI12_jobs)C++17
10 / 100
492 ms20512 KiB
#include <bits/stdc++.h> using namespace std; int day, deadline, work; const int N = 100001; int workday[N] = {}; vector<int> general; vector<int> li[N] = {}; bool solve(int maxmachine) { int workleft = work; int dayy = 1; vector<int> soil = general; while (workleft > 0 && !soil.empty()) { for (int i = 0; i < maxmachine; ++i) { if (soil.back() + deadline < dayy) return false; else { workleft--; soil.pop_back(); } } dayy++; } return true; } bool solveprint(int maxmachine) { int workleft = work; int dayy = 1; vector<int> soil = general; while (workleft > 0 && !soil.empty()) { for (int i = 0; i < maxmachine; ++i) { if (soil.back() + deadline < dayy) return false; else { cout << li[soil.back()].back() << " "; li[soil.back()].pop_back(); workleft--; soil.pop_back(); } } dayy++; cout << "0\n"; } for(int i = dayy;i <= day;++i) cout << "0\n"; return true; } int main() { int a; cin >> day >> deadline >> work; for (int i = 0; i < work; ++i) { cin >> a; workday[a]++; li[a].push_back(i+1); } int maxwork = -1; for (int i = 1; i <= day - deadline; ++i) { maxwork = max(maxwork, workday[i]); for (int j = 1; j <= workday[i]; ++j) general.push_back(i); } reverse(general.begin(), general.end()); int l; for(int i = 1;i <= work;++i) { if(solve(i)) { l = i; break; } } cout << l << "\n"; solveprint(l); } /* 8 2 12 1 2 4 2 1 3 5 6 2 3 6 4 */

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:85:18: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
   85 |     cout << l << "\n";
      |                  ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...