제출 #960446

#제출 시각아이디문제언어결과실행 시간메모리
960446NeltJob Scheduling (CEOI12_jobs)C++17
80 / 100
212 ms49936 KiB
#include <bits/stdc++.h> #define ll long long #define endl "\n" using namespace std; void solve() { ll n, d, m; cin >> n >> d >> m; vector<ll> v[n + 1]; ll tm[m + 1]; for (ll i = 1; i <= m; i++) { cin >> tm[i]; v[tm[i]].push_back(i); } ll l = 1, r = m; queue<ll> q; vector<ll> tmp[n + 1], ans[n + 1]; while (l <= r) { ll mid = (l + r) >> 1; bool ok = true; while (!q.empty()) q.pop(); for (ll i = 1; i <= n; i++) { tmp[i].clear(); for (ll j : v[i]) q.push(j); if (!q.empty() and tm[q.front()] + d < i) { ok = false; break; } while (!q.empty() and tmp[i].size() < mid) tmp[i].push_back(q.front()), q.pop(); } if (ok) { r = mid - 1; for (ll i = 1; i <= n; i++) ans[i] = tmp[i]; } else l = mid + 1; } cout << ++r << endl; for (ll i = 1; i <= n; i++) { for (ll j : ans[i]) cout << j << " "; cout << "0\n"; } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); ll t = 1; // precomp(); // cin >> t; for (ll i = 1; i <= t; i++) solve(); cerr << "\nTime elapsed: " << clock() * 1000.0 / CLOCKS_PER_SEC << " ms\n"; }

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

jobs.cpp: In function 'void solve()':
jobs.cpp:36:49: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   36 |             while (!q.empty() and tmp[i].size() < mid)
      |                                   ~~~~~~~~~~~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...