Submission #1281490

#TimeUsernameProblemLanguageResultExecution timeMemory
1281490osserJob Scheduling (CEOI12_jobs)Pypy 3
0 / 100
977 ms131072 KiB
import sys
input = sys.stdin.readline

N, D, M = map(int, input().split())
jobs = list(map(int, input().split()))
for i in range(M):
    jobs[i] = (jobs[i], i+1)
jobs.sort()

def is_feasible(m):
    schedule = [[] for _ in range(N)]
    j = 0

    for day in range(1, N+1):
        for _ in range(m):
            if jobs[j][0] > day:
                break

            if jobs[j][0] + D >= day:
                schedule[day-1].append(jobs[j][1])
                j += 1
            else:
                return 0, schedule
            
            if j == M:
                return 1, schedule
            
    return 0, schedule
    
ans = []
l, r = 1, M
while l < r:
    mid = (l + r) // 2
    result = is_feasible(mid)

    if result[0]:
        r = mid
        ans = result[1]
    else:
        l = mid + 1

print(l)
for i in range(N):
    ans[i] += [0]
    print(*ans[i])

Compilation message (stdout)

Compiling 'jobs.py'...

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

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