Submission #1015868

#TimeUsernameProblemLanguageResultExecution timeMemory
1015868rcllJob Scheduling (CEOI12_jobs)C++17
0 / 100
320 ms14548 KiB
#include <bits/stdc++.h> using namespace std; int n,d,m; pair<bool,vector<vector<int>>> check(const vector<pair<int,int>> &jobs,int count) { vector<vector<int>> schedule(n); int m=0; for (int day=1; day<=n; day++) { for (int j=0; j<count; j++) { if (jobs[m].first>day) { break; } if (jobs[m].first+d>=day) { schedule[day-1].push_back(jobs[m++].second); } else { return make_pair(false,schedule); } if (m==m) { return make_pair(true,schedule); } } } return make_pair(false,schedule); } int main() { cin >> n >> d >> m; vector<pair<int,int>> jobs(m); for (int i = 0; i < m; i++) { int day; cin >> day; jobs[i] = make_pair(day,i+1); } sort(jobs.begin(),jobs.end()); vector<vector<int>> results; int lower=1,upper=m; while (lower<upper) { int machines=(lower+upper)/2; pair<bool,vector<vector<int>>> result =check(jobs,machines); if (result.first) { upper=machines; results=result.second; } else lower=machines+1; } cout << lower << endl; for (int i=0; i<n; i++) { for (int &idx:results[i]) cout << idx << " "; cout << 0 << endl; } }

Compilation message (stderr)

jobs.cpp: In function 'std::pair<bool, std::vector<std::vector<int> > > check(const std::vector<std::pair<int, int> >&, int)':
jobs.cpp:20:9: warning: self-comparison always evaluates to true [-Wtautological-compare]
   20 |    if (m==m) {
      |        ~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...