Submission #743321

#TimeUsernameProblemLanguageResultExecution timeMemory
743321vjudge1Job Scheduling (CEOI12_jobs)C++17
0 / 100
492 ms58356 KiB
#include<bits/stdc++.h> #define int long long using namespace std; struct deads { int day,work,dead; bool operator<(const deads&d2)const{ if(day==d2.day) return work>d2.work; return day<d2.day; } }; vector<deads> vc,copys; int n,d,m,a; int l = 1,ans = 1e14,r = 1e14; signed 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){ copys.push_back({day,work,dead}); } while(l<r){ int mid = (l+r)>>1; int cnt = 0; bool ck = 0; int ps = 0; for(int i = 0; i<vc.size(); ++i){ if(vc[i].day+ps>vc[i].dead){ ck = 1; break; } if(cnt==mid){ cnt = 0; ps++; } ++cnt; } if(ck){ l = mid+1; } else{ ans = min(ans,mid); r = mid-1; } for(int i = 0; i<copys.size(); ++i){ vc[i] = copys[i]; } } int k = ans/2; 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(vc.size()%k) { cout<<"0\n"; ++c; } for(int i = 0; i<n-c; ++i) cout<<0<<"\n"; }

Compilation message (stderr)

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