Submission #979029

#TimeUsernameProblemLanguageResultExecution timeMemory
979029AmaarsaaJob Scheduling (CEOI12_jobs)C++14
100 / 100
308 ms14064 KiB
#include<bits/stdc++.h>

using namespace std;
using ll = long long ;
int  n, d;
vector < pair < int, int > >v;
bool can(int mid) {
	int i, s, cnt  = 0, l, r;
	l = 0;
	for (i = 1; i <= n; i ++) {
		if ( l >= v.size()) return 1;
		if ( v[l].first < i) return 0;
		i = max(i, v[l].first - d);
		r = min(int(v.size() - 1), l + mid - 1);
		if ( l > r) return 0;
		l = r + 1;
	}
	if ( l >= v.size()) return 1;
	return 0;
} 
void Ans(int mid) {
	int i, s, cnt  = 0, l, r;
	l = 0;
	for (i = 1; i <= n; i ++) {
		cnt ++;
		i = max(i, v[l].first - d);
		r = min(int(v.size() - 1), l + mid - 1);
		for (int j = l; j <= r; j ++) cout << v[j].second << " ";
		cout << 0 << endl;
		l = r + 1;
	}
	while ( cnt < n) {
		cout << 0 << endl;
		cnt ++;
	}
	return ;
}
int main() {
//	freopen("moocast.in", "r", stdin);
//	freopen("moocast.out", "w", stdout);
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	int m, i,x, lo, hi, mid;
	
	cin >> n >> d >> m;
	
	for (i = 1; i <= m; i ++) {
		cin >> x;
		v.push_back({x + d, i});
	}
	sort(v.begin(), v.end());
	lo = 0;
	hi = m; 
	while (lo < hi) {
		mid = (lo + hi)/2;
		if (!can(mid)) lo = mid + 1;
		else hi = mid;
	}
	cout << lo   << endl;
	Ans(lo );
}

Compilation message (stderr)

jobs.cpp: In function 'bool can(int)':
jobs.cpp:11:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |   if ( l >= v.size()) return 1;
      |        ~~^~~~~~~~~~~
jobs.cpp:18:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |  if ( l >= v.size()) return 1;
      |       ~~^~~~~~~~~~~
jobs.cpp:8:9: warning: unused variable 's' [-Wunused-variable]
    8 |  int i, s, cnt  = 0, l, r;
      |         ^
jobs.cpp:8:12: warning: unused variable 'cnt' [-Wunused-variable]
    8 |  int i, s, cnt  = 0, l, r;
      |            ^~~
jobs.cpp: In function 'void Ans(int)':
jobs.cpp:22:9: warning: unused variable 's' [-Wunused-variable]
   22 |  int i, s, cnt  = 0, l, r;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...