Submission #817641

#TimeUsernameProblemLanguageResultExecution timeMemory
817641n3rm1nJob Scheduling (CEOI12_jobs)C++17
0 / 100
187 ms13868 KiB
#include<bits/stdc++.h> #define endl '\n' using namespace std; const int MAXN = 1e6 + 10; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } int n, d, m; vector < pair < int, int > > g; void read() { cin >> n >> d >> m; int x; for (int i = 1; i <= m; ++ i) { cin >> x; g.push_back({x, i}); } sort(g.begin(), g.end()); } bool check(int x) { int i = 0, moment = 0; while (i <= n) { moment ++; int j = i; if(g[j].first + d < moment)return false; while(j < g.size() && j - i + 1 <= x && g[j].first <= moment) { j ++; } i = j; } return (moment <= n); } int main() { speed(); read(); int left = 1, right = m, mid, ans = m+1; while(left <= right) { mid = (left + right)/2; if(check(mid)) { ans = mid; right = mid - 1; } else left = mid + 1; } cout << ans << endl; int i = 0, moment = 0; while (i < g.size()) { moment ++; int j = i; while(j < g.size() && j - i + 1 <= ans && g[j].first <= moment) { cout << g[j].second << " "; j ++; } cout << 0 << endl; i = j; } while(moment < n) { cout << 0 << endl; moment ++; } return 0; }

Compilation message (stderr)

jobs.cpp: In function 'bool check(int)':
jobs.cpp:32:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |         while(j < g.size() && j - i + 1 <= x && g[j].first <= moment)
      |               ~~^~~~~~~~~~
jobs.cpp: In function 'int main()':
jobs.cpp:58:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |     while (i < g.size())
      |            ~~^~~~~~~~~~
jobs.cpp:62:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |         while(j < g.size() && j - i + 1 <= ans && g[j].first <= moment)
      |               ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...