제출 #918277

#제출 시각아이디문제언어결과실행 시간메모리
918277AiperiiiJob Scheduling (CEOI12_jobs)C++14
100 / 100
291 ms16680 KiB
#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(),x.end()
using namespace std;
signed main(){
   ios_base::sync_with_stdio();
   cin.tie(0);cout.tie(0);
   int n,m,d;
   cin>>n>>d>>m;
   vector <pair <int,int> > v;
   for(int i=0;i<m;i++){
      int x;cin>>x;
      v.pb({x,i+1});
   }
   sort(all(v));
   //for(auto x : v)cout<<x.ff<<" "<<x.ss<<"\n";
   int l=0,r=1e6+5;
   while(l+1<r){
      int md=(l+r)/2;
      int p=0;
      for(int i=1;i<=n;i++){
         int cnt=md;
         while(cnt>0 && p<v.size() && v[p].ff<=i && v[p].ff>=i-d){
            cnt--;
            p++;
         }
         //cout<<p<<"\n";
      }
      //cout<<md<<" "<<p<<"\n";
      if(p==v.size())r=md;
      else l=md;
   }
   cout<<r<<"\n";
   int p=0;
   for(int i=1;i<=n;i++){
      int cnt=r;
      while(cnt>0 && p<v.size() && v[p].ff<=i && v[p].ff>=i-d){
         cnt--;
         cout<<v[p].ss<<" ";
         p++;
      }
      cout<<0<<"\n";
   }
}
/*
8 2 12
1 2 3 4 5 6 7 8 9 10 11 12
1 2 4 2 1 3 5 6 2 3  6  4
1 3 5 2 1 4 5 6 2 3  6  4
 */

컴파일 시 표준 에러 (stderr) 메시지

jobs.cpp: In function 'int main()':
jobs.cpp:25:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |          while(cnt>0 && p<v.size() && v[p].ff<=i && v[p].ff>=i-d){
      |                         ~^~~~~~~~~
jobs.cpp:32:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |       if(p==v.size())r=md;
      |          ~^~~~~~~~~~
jobs.cpp:39:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |       while(cnt>0 && p<v.size() && v[p].ff<=i && v[p].ff>=i-d){
      |                      ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...