Submission #899574

#TimeUsernameProblemLanguageResultExecution timeMemory
899574LCJLYJob Scheduling (CEOI12_jobs)C++14
100 / 100
163 ms18080 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define int long long
#define ld long double
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << "  " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << "  " << j << " " << #i << "  " << q << " " << #p << endl; 
#define show4(x,y) for(auto it:x) cout << it << " "; cout << #y << endl;
typedef pair<int,int>pii;
//typedef pair<int,pii>pi2;
typedef array<int,4>pi2;

void solve(){	
	int n,m,k;
	cin >> n >> m >> k;
	
	vector<int>arr[100005];
	int temp;
	for(int x=0;x<k;x++){
		cin >>	temp;
		arr[temp].push_back(x+1);
	}
	
	int l=0;
	int r=k;
	int best=r;
	int mid;
	
	while(l<=r){
		mid=(l+r)/2;
		
		queue<int>q;
		bool amos=true;
		
		for(int x=1;x<=n;x++){
			for(auto it:arr[x]){
				q.push(x);
			}
				
			for(int y=0;y<mid;y++){
				if(q.empty()) break;
				if(x-q.front()>m) amos=false;
				q.pop();
			}
		}
		
		if(amos){
			best=mid;
			r=mid-1;
		}
		else l=mid+1;
	}
	
	cout << best << "\n";
	
	queue<int>qq;
	for(int x=1;x<=n;x++){
		for(auto it:arr[x]){
			qq.push(it);
		}
		
		//show2(x,x,arr[x].size(),arr[x].size());
		
		for(int y=0;y<best;y++){
			if(qq.empty()) break;
			cout << qq.front() << " ";
			qq.pop();
		}
		
		cout << 0 << "\n";
	}
}
 
int32_t main(){										
	ios::sync_with_stdio(0);	
	cin.tie(0);
	//freopen("redistricting.in", "r", stdin);
	//freopen("redistricting.out", "w", stdout);
	int t=1;
	//cin >> t;
	while(t--){
		solve();
	}	
}

Compilation message (stderr)

jobs.cpp: In function 'void solve()':
jobs.cpp:37:13: warning: unused variable 'it' [-Wunused-variable]
   37 |    for(auto it:arr[x]){
      |             ^~
#Verdict Execution timeMemoryGrader output
Fetching results...