Submission #785886

#TimeUsernameProblemLanguageResultExecution timeMemory
785886OrazBJob Scheduling (CEOI12_jobs)C++14
55 / 100
238 ms15736 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> using namespace __gnu_pbds; using namespace std; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //Dijkstra->set //set.find_by_order(x) x-position value //set.order_of_key(x) number of strictly less elements don't need *set.?? #define N 1000005 #define wr cout << "Continue debugging\n"; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second int arr[N], ind[N]; bool cmp(int x, int y){ return (arr[x] < arr[y]); } int main () { ios::sync_with_stdio(false); cin.tie(0); int n, d, m; cin >> m >> d >> n; for (int i = 1; i <= n; i++) cin >> arr[i], ind[i] = i; sort(ind+1, ind+n+1, cmp); // for (int i = 1; i <= n; i++) cout << arr[ind[i]] << " "; cout << '\n'; int l = 1, r = n, ans; while(l <= r){ int md = (l+r)/2; int x = md, cnt = 1, tr = 0; for (int i = 1; i <= n; i++){ if (!x){ cnt++; x = md-1; }else x--; if (arr[ind[i]]+d < cnt){tr=1;break;} } if (tr) l = md + 1; else{ ans = md; r = md - 1; } } cout << ans << '\n'; int x = ans, cnt = 1; for (int i = 1; i <= n; i++){ if (!x){ cnt++; cout << "0\n"; x = ans-1; }else x--; cout << ind[i] << " "; } for (int i = cnt; i <= m; i++){ cout << "0"; if (i != m) cout << '\n'; } }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:55:17: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   55 |  cout << ans << '\n';
      |                 ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...