제출 #742970

#제출 시각아이디문제언어결과실행 시간메모리
742970JooJob Scheduling (CEOI12_jobs)C++17
0 / 100
1088 ms29340 KiB
#include <bits/stdc++.h> using namespace std; struct DATA { int day, work, dead; bool operator<(const DATA &d2) const { return day < d2.day; } }; vector<DATA> vc, copys; int n, d, m, a, l = 1, r = 1e9, ans = 1e9 + 7; int main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> n >> d >> m; for (int i = 1; i <= m; ++i) { cin >> a; vc.push_back({a, i, a + d}); } sort(vc.begin(), vc.end()); for (auto [day, work, dead] : vc) { // cout<<day<<" "<<work<<" "<<dead<<"\n"; copys.push_back({day, work, dead}); } // cout<<"----------------------\n"; while (l < r) { int mid = (l + r) >> 1; int cnt = 0; bool ck = 0; for (int i = 0; i < vc.size(); ++i) { if (vc[i].day == vc[i].dead) { ck = 1; break; } ++cnt; if (cnt == mid) { cnt = 0; for (int j = i + 1; j < vc.size(); ++j) { vc[j].day++; if (vc[j].day == vc[j].dead) { ck = 1; break; } } } if (ck) break; } if (ck) l = mid + 1; else r = mid; vc = copys; } int k = m / l; cout << k << "\n"; int cnt = 0, c = 0; for (auto [day, work, dead] : vc) { if (cnt == k) { cnt = 0; ++c; cout << 0 << "\n"; } ++cnt; cout << work << " "; } if (c != m) cout << 0 << "\n"; for (int i = 0; i < n - l; ++i) cout << 0 << "\n "; }

컴파일 시 표준 에러 (stderr) 메시지

jobs.cpp: In function 'int main()':
jobs.cpp:38:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<DATA>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         for (int i = 0; i < vc.size(); ++i)
      |                         ~~^~~~~~~~~~~
jobs.cpp:49:39: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<DATA>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |                 for (int j = i + 1; j < vc.size(); ++j)
      |                                     ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...