def is_feasible(jobs,machine_count):
schedule=[[] for _ in range(N)]
req_num=0
for day in range(1,N+1):
for _ 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 0,schedule
if req_num==M:
return 1,schedule
return 0,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()
컴파일 시 표준 출력 (stdout) 메시지
Compiling 'jobs.py'...
=======
adding: __main__.pyc (deflated 37%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |