Submission #1221347

#TimeUsernameProblemLanguageResultExecution timeMemory
1221347plasmatic8Job Scheduling (CEOI12_jobs)Pypy 3
0 / 100
1102 ms131072 KiB
n, d, m = map(int, input().split())
a = list(map(int, input().split()))
b = []
for i in range(m):
    b.append([a[i],i+1])
b.sort()
def solve(machines):
    did = []
    day = 0
    ans = []
    for i in range(0, m, machines):
        day += 1
        ans.append([])
        jobs = b[i:min(m, i+machines)]
        for job in jobs:
            did.append(max(job[0], day)-job[0])
            ans[-1].append(job[1])
        ans[-1].append(0)
    for i in did:
        if i > d:
            return False, ans
    return True, ans


def first_true(lo, hi, f):
	hi += 1
	while lo < hi:
		mid = (lo + hi) // 2
		if f(mid)[0]:
			hi = mid
		else:
			lo = mid + 1
	return lo

print(first_true(1, n, solve))
x = solve(first_true(1, n, solve))[1]
for i in range(n):
    print(*x[i] if i < len(x) else [0])

Compilation message (stdout)

Compiling 'jobs.py'...

=======
  adding: __main__.pyc (deflated 34%)

=======
#Verdict Execution timeMemoryGrader output
Fetching results...