Submission #1150818

#TimeUsernameProblemLanguageResultExecution timeMemory
1150818jim_xJob Scheduling (CEOI12_jobs)Pypy 3
0 / 100
915 ms131072 KiB
from typing import List, Tuple N, D, M = 0, 0, 0 def is_feasible(jobs: List[Tuple[int, int]], machine_count: int) -> Tuple[bool, List[List[int]]]: schedule = [[] for _ in range(N)] req_num = 0 for day in range(1, N + 1): for j in range(machine_count): if jobs[req_num][0] > day: break if jobs[req_num][0] + D >= day: schedule[day - 1].append(jobs[req_num][1]) req_num += 1 else: return False, schedule if req_num == M: return True, schedule return False, schedule def main(): global N, D, M 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() result = [] l, r = 1, M while l < r: machine_num = (l + r) // 2 cur_result = is_feasible(jobs, machine_num) if cur_result[0]: r = machine_num result = cur_result[1] else: l = machine_num + 1 print(l) for i in range(N): for idx in result[i]: print(idx, end=" ") print(0) main()

Compilation message (stdout)

Compiling 'jobs.py'...

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

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