Submission #36683

# Submission time Handle Problem Language Result Execution time Memory
36683 2017-12-13T08:14:42 Z RockyB Job Scheduling (CEOI12_jobs) C++11
0 / 100
36 ms 4928 KB
/// In The Name Of God

#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,sse3,sse4,popcnt,abm,mmx")

#include <bits/stdc++.h>

#define f first
#define s second

#define pb push_back
#define pp pop_back
#define mp make_pair

#define sz(x) (int)x.size()
#define sqr(x) ((x) * 1ll * (x))
#define all(x) x.begin(), x.end()

#define Kazakhstan ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0);

#define nl '\n'
#define ioi exit(0);

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int N = (int)1e5 + 7, inf = (int)1e9 + 7, mod = (int)1e9 + 7;
const ll linf = (ll)1e18 + 7;
const int dx[] = {-1, 0, 1, 0, 1, -1, -1, 1}, dy[] = {0, 1, 0, -1, 1, -1, 1, -1};

using namespace std;

int n, d, m;
pair <int, int> a[N];
int cnt[N];

bool check(int total) {
	memset(cnt, 0, sizeof(cnt));
	for (int i = 1; i <= m; i++) {
		bool ok = 0;
		for (int j = a[i].f; j <= a[i].f + d; j++) {
			if (cnt[j] < total) {
				cnt[j]++;
				ok = 1;
				break;
			}
		}
		if (!ok) return 0;
	}
	return 1;
}
int main() {
	#ifdef IOI2018
		freopen ("in.txt", "r", stdin);
	#endif
	Kazakhstan
	cin >> n >> d >> m;
	for (int i = 1; i <= m; i++) {
		cin >> a[i].f;
		a[i].s = i;
	}
	sort (a + 1, a + 1 + m);
	int l = 1, r = m, res = m;
	while (l <= r) {
		int mid = (l + r) >> 1;
		if (check(mid)) res = mid, r = mid - 1;
		else l = mid + 1;
	}
	{
		memset(cnt, 0, sizeof(cnt));
		vector < pair <int, int> > ans;
		for (int i = 1; i <= m; i++) {
			for (int j = a[i].f; j <= a[i].f + d; j++) {
				if (cnt[j] < res) {
					cnt[j]++;
					ans.pb({j, a[i].s});
					break;
				}
			}
		}
		cout << res << nl;
		sort(all(ans));
		int ptr = 0;
		for (int i = 1; i <= n; i++) {
			while (ptr < sz(ans) && ans[ptr].f < i) ptr++;
			while (ptr < sz(ans) && ans[ptr].f == i) {
				cout << ans[ptr++].s << ' ';
			}
			cout << 0 << nl;
		}
	}
	ioi
}
# Verdict Execution time Memory Grader output
1 Runtime error 16 ms 4928 KB Execution killed because of forbidden syscall writev (20)
2 Runtime error 16 ms 4928 KB Execution killed because of forbidden syscall writev (20)
3 Runtime error 19 ms 4928 KB Execution killed because of forbidden syscall writev (20)
4 Runtime error 16 ms 4928 KB Execution killed because of forbidden syscall writev (20)
5 Runtime error 23 ms 4928 KB Execution killed because of forbidden syscall writev (20)
6 Runtime error 23 ms 4928 KB Execution killed because of forbidden syscall writev (20)
7 Runtime error 23 ms 4928 KB Execution killed because of forbidden syscall writev (20)
8 Runtime error 16 ms 4928 KB Execution killed because of forbidden syscall writev (20)
9 Runtime error 29 ms 4928 KB Execution killed because of forbidden syscall writev (20)
10 Runtime error 29 ms 4928 KB Execution killed because of forbidden syscall writev (20)
11 Runtime error 36 ms 4928 KB Execution killed because of forbidden syscall writev (20)
12 Incorrect 6 ms 3352 KB Output isn't correct
13 Incorrect 9 ms 3352 KB Output isn't correct
14 Runtime error 9 ms 3352 KB Execution killed because of forbidden syscall writev (20)
15 Incorrect 6 ms 3352 KB Output isn't correct
16 Runtime error 3 ms 3352 KB Execution killed because of forbidden syscall writev (20)
17 Runtime error 6 ms 3512 KB Execution killed because of forbidden syscall writev (20)
18 Runtime error 6 ms 3352 KB Execution killed because of forbidden syscall writev (20)
19 Runtime error 6 ms 3352 KB Execution killed because of forbidden syscall writev (20)
20 Runtime error 6 ms 3512 KB Execution killed because of forbidden syscall writev (20)