Submission #157712

#TimeUsernameProblemLanguageResultExecution timeMemory
157712a_playerJob Scheduling (CEOI12_jobs)C++14
22 / 100
835 ms10384 KiB
#include <bits/stdc++.h>

using namespace std;

int N,M,D;
int s[1000001];
bool check(int T){
  if(T>=M)return true;
  if(T==0)return false;
    for(int i=0;i<M;i++)if(s[i]+D<max(s[i],i/T+1))return false;
     return true;
}
int main(){
  cin>>N>>D>>M;
  for(int i=0;i<M;i++)cin>>s[i];
  sort(s,s+M);
  int x=-1;
  for(int b=M;b>=1;b/=2)
  while(!check(x+b))x+=b;

  cout<<x+1<<endl;
  for(int i=0;i<N;i++){
    for(int z=i*(x+1);z<M&&z<(i+1)*(x+1);z++)cout<<z+1<<" ";
    cout<<0<<endl;
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...