제출 #743286

#제출 시각아이디문제언어결과실행 시간메모리
743286vjudge1Job Scheduling (CEOI12_jobs)C++17
0 / 100
466 ms58304 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; } ++cnt; if(cnt==mid){ cnt = 0; ps++; } if(ck) break; } if(ck){ l = mid+1; } else{ ans = min(ans,mid); r = mid; } for(int i = 0; i<copys.size(); ++i){ vc[i] = copys[i]; } } int k = m/ans; 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(c!=m) { cout<<"0\n"; ++c; } for(int i = 0; i<n-c; ++i) cout<<0<<"\n"; }

컴파일 시 표준 에러 (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:55:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<deads>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for(int i = 0; i<copys.size(); ++i){
      |                        ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...