Submission #1281474

#TimeUsernameProblemLanguageResultExecution timeMemory
1281474osserJob Scheduling (CEOI12_jobs)Pypy 3
0 / 100
266 ms131072 KiB
from collections import defaultdict
N, D, M = map(int, input().split())
v = list(map(int, input().split()))
dm = [[]  for _ in range(N+1)] 
for index, item in enumerate(v):
    dm[item].append(index+1)

def check(mid):
    day = 0
    i = 1

    for i in range(1, len(dm)):
        day += (len(dm[i]) + mid - 1) // mid

        if day - i > D:
            return False
        
        i += 1

    return True


l = 0; r = 10**6
while l < r:
    mid = (l + r) // 2
    if check(mid):
        r = mid
    else:
        l = mid + 1

print(l)
allm = [x for sublist in dm for x in sublist]
days = N
for i in range(0, M, l):
    days -= 1
    if i + l >= M:
        print(*allm[i:], 0)
    else:
        print(*allm[i:i+l], 0)

for i in range(days):
    print(0)

Compilation message (stdout)

Compiling 'jobs.py'...

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

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