Submission #532897

#TimeUsernameProblemLanguageResultExecution timeMemory
532897raypeng1729Job Scheduling (CEOI12_jobs)C++17
34 / 100
260 ms21672 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define all(v) v.begin(), v.end() const int N = 2e5 + 5, MOD = 1e9 + 7, INF = 1e9 + 5; #define X first #define Y second signed main(){ ios::sync_with_stdio(false); cin.tie(0); int n, d, m; cin >> n >> d >> m; pair<int, int> p[m]; for(int i = 0; i < m; i++){ cin >> p[i].first; p[i].second = i + 1; } sort(p, p + m); int l = 0, r = INF; vector<int> work(n); while(r - l > 1){ int mid = l + r >> 1; int pos = 0; bool ok = 1; for(int i = 0; i < n; i++){ int cnt = 0; while(pos < m && cnt < mid && p[pos].first <= i + 1) pos++, cnt++; work[i] = cnt; if(pos < m && p[pos].first < i - d) ok = 0; } if(pos < m) ok = 0; if(ok) r = mid; else l = mid; } int pos = 0; cout << r << '\n'; for(int i : work){ while(i--){ cout << p[pos].second << ' ', pos++; } cout << "0\n"; } }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:19:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   19 |         int mid = l + r >> 1;
      |                   ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...