Submission #140535

#TimeUsernameProblemLanguageResultExecution timeMemory
140535pathJob Scheduling (CEOI12_jobs)C++14
55 / 100
507 ms21100 KiB
#include <bits/stdc++.h> using namespace std; #define f first #define s second typedef long long int ll; const int N=1e6+3; int n,d,m; pair<int,int> a[N]; bool chk(int x){ queue < pair<int,int> > q; pair<int,int> tmp; for(int i=0;i<m;i++) q.push(make_pair(a[i].f,a[i].f+d)); for(int i=1;i<=n&&q.size();i++){ for(int j=0;j<x&&q.size();j++){ tmp=q.front(); q.pop(); if(tmp.s<i) return 0; } } return (!q.size()); } void out (int x){ queue <int> q; int tmp; for(int i=0;i<m;i++) q.push(a[i].s); for(int i=1;i<=n;i++){ for(int j=0;j<x&&q.size();j++){ tmp=q.front(); q.pop(); cout<<tmp<<" "; } cout<<0<<'\n'; } return; } int main(){ cin.tie(NULL); ios_base::sync_with_stdio(false); cin>>n>>d>>m; for(int i=0;i<m;i++){ cin>>a[i].f; a[i].s=i+1; } sort(a,a+m); int s=1,e=m,mid; while(s<e){ mid=(s+e)/2; if(chk(mid)) e=mid; else s=mid+1; } cout<<e<<'\n'; out(e); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...