Submission #78359

#TimeUsernameProblemLanguageResultExecution timeMemory
78359SamAndJob Scheduling (CEOI12_jobs)C++17
70 / 100
280 ms33792 KiB
#include <bits/stdc++.h> using namespace std; #define m_p make_pair const int N=1000006; struct ban { int x,i; }; bool operator<(const ban& a,const ban& b) { if(a.x<b.x) return true; if(a.x>b.x) return false; return a.i<b.i; } int n,d,m; ban a[N]; vector<int> v[N]; void stgg(int x) { int o=1,xx=0; for(int i=0;i<m;++i) { while(a[i].x>o) { ++o; xx=0; } ++xx; v[o].push_back(a[i].i); if(xx==x) { ++o; xx=0; } } } bool stg(int x) { int o=1,xx=0; for(int i=0;i<m;++i) { while(a[i].x>o) { ++o; xx=0; } if(o>n) return false; if(a[i].x+d<o) return false; ++xx; if(xx==x) { ++o; xx=0; } } return true; } int byn() { int l=1,r=m; while((r-l)>3) { int mid=(l+r)/2; if(stg(mid)) r=mid; else l=mid; } for(int mid=l;mid<=r;++mid) if(stg(mid)) return mid; } int main() { //freopen("input.txt","r",stdin); scanf("%d%d%d",&n,&d,&m); for(int i=0;i<m;++i) { scanf("%d",&a[i].x); a[i].i=i+1; } sort(a,a+m); int ans=byn(); stgg(ans); cout<<ans<<endl; for(int i=1;i<=n;++i) { for(int j=0;j<v[i].size();++j) cout<<v[i][j]<<' '; cout<<0<<endl; } return 0; }

Compilation message (stderr)

jobs.cpp: In function 'int main()':
jobs.cpp:97:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0;j<v[i].size();++j)
                     ~^~~~~~~~~~~~
jobs.cpp: In function 'int byn()':
jobs.cpp:80:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
jobs.cpp: In function 'int main()':
jobs.cpp:85:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d",&n,&d,&m);
     ~~~~~^~~~~~~~~~~~~~~~~~~
jobs.cpp:88:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&a[i].x);
         ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...