Submission #515797

#TimeUsernameProblemLanguageResultExecution timeMemory
515797perchutsJob Scheduling (CEOI12_jobs)C++17
100 / 100
331 ms14728 KiB
#include <bits/stdc++.h> #define maxn (int)(1e5+51) #define all(x) x.begin(), x.end() #define sz(x) (int) x.size() #define endl '\n' #define ll long long #define pb push_back #define ull unsigned long long #define ii pair<int,int> #define iii tuple<int,int,int> #define inf 2000000001 #define mod 1000000007 //998244353 #define _ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); using namespace std; template<typename X, typename Y> bool ckmin(X& x, const Y& y) { return (y < x) ? (x=y,1):0; } template<typename X, typename Y> bool ckmax(X& x, const Y& y) { return (x < y) ? (x=y,1):0; } ii v[10*maxn]; int n,m,d; bool possible(int x){ queue<int>q; int it = 1; for(int i=1;i<=n;i++){ while(it<=m&&v[it].first==i)q.push(i),it++; for(int j=1;j<=x&&!q.empty();j++){ int k = q.front();q.pop(); if(k+d<i)return 0; } } return 1; } int main(){_ cin>>n>>d>>m; for(int i=1;i<=m;i++){ int day; cin>>day; v[i] = {day,i}; } sort(v+1,v+1+m); int l = 1, r = m,ans; while(l<=r){ int md = l + (r-l+1)/2; if(possible(md)){ ans = md,r=md-1; }else{ l = md+1; } } int x = ans,it = 1; queue<ii>q; cout<<ans<<endl; for(int i=1;i<=n;i++){ while(it<=m&&v[it].first==i&&it<=m)q.push(v[it++]); for(int j=1;j<=x&&!q.empty();j++){ auto [k,id] = q.front();q.pop(); cout<<id<<" "; } cout<<"0\n"; } }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:59:25: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   59 |         for(int j=1;j<=x&&!q.empty();j++){
      |                     ~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...