Submission #1221351

#TimeUsernameProblemLanguageResultExecution timeMemory
1221351plasmatic8Job Scheduling (CEOI12_jobs)Pypy 3
0 / 100
897 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
        jobs = b[i:min(m, i+machines)]
        for job in jobs:
            did.append(max(job[0], day)-job[0])
    for i in did:
        if i > d:
            return False
    return True


def first_true(lo, hi, f):
	hi += 1
	while lo < hi:
		mid = (lo + hi) // 2
		if f(mid):
			hi = mid
		else:
			lo = mid + 1
	return lo
machines = first_true(1, n, solve)
print(machines)
did = []
day = 0
ans = []
wrote = 0
for i in range(0, m, machines):
    day += 1
    ans = []
    jobs = b[i:min(m, i+machines)]
    for job in jobs:
        did.append(max(job[0], day)-job[0])
        ans.append(job[1])
    print(*ans, end=" 0\n")
    wrote+=1
for i in range(n-wrote):
    print(0)

Compilation message (stdout)

Compiling 'jobs.py'...

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

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