제출 #453175

#제출 시각아이디문제언어결과실행 시간메모리
453175osmanallazovJob Scheduling (CEOI12_jobs)C++14
0 / 100
618 ms13656 KiB
#include <bits/stdc++.h>
using namespace std;
#define MAXX 1000005
#define ll long long
pair<int,int>j[MAXX];
int n,m,d;
bool check(ll num) {
    if(num*n<m)return 0;
	for(ll k=0;k<n;k++) {
		for(ll i=k*num;i<min((ll)m,(k+1)*num);i++) {
			if(j[i].first+d<k+1) return 0;
		}
	}
	return 1;
}
int main(){
    cin>>n>>d>>m;
    for(int i=0;i<m;i++){
        cin>>j[i].first;
        j[i].second=i+1;
    }
    sort(j,j+m);
    int r=m,l=0,mid,res=-1;
    while(l<=r) {
		mid=(l+r)/2;
		if(check(mid)) {
			res=mid;
			r=mid-1;
		}
		else l=mid+1;
	}
	cout<<res<<endl;
	for(ll k=1;k<n;k++){
        for(ll i=k*res;i<min((ll)m,(k+1)*res);i++){
            cout<<j[i].second<<" ";
        }
        cout<<0<<endl;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...