[BOJ 12016] 라운드 로빈 스케줄러
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
4
Time limit:
2.0s
Memory limit:
512M
Problem types
Allowed languages
싱글 CPU에서 여러개의 작업을 실행할 때, 스케줄러는 어떤 작업을 언제 실행해야할지 CPU에게 알려준다.</p>
이번 문제에서 살펴볼 스케줄러는 라운드 로빈 스케줄러이다. 총 작업은 N개가 있으며, 0번부터 N-1번까지 번호가 매겨져 있다. 스케줄러는 각 작업을 0번 작업부터 순서대로 한 번에 1초씩 실행시킨다. 모든 작업을 순서대로 실행시킨 후에는 다시 0번 작업부터 실행을 시작한다. 이때, 완료된 작업이 있으면, 그 작업은 앞으로 실행시키지 않는다.
각 작업을 수행해야하는 시간이 주어졌을 때, 각 작업이 언제 완료되는지 구하는 프로그램을 작성하시오.
입력 형식
첫째 줄에 작업의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 각 작업을 수행해야하는 시간이 공백으로 구분되어 주어진다. 각 작업을 수행해야하는 시간은 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
출력 형식
첫째 줄부터 N개의 줄에 각 작업을 완료하는데 필요한 시간을 0번 작업부터 출력한다.
예제 입력 1
4
2 1 2 4
예제 출력 1
5
2
6
9
예제 입력 2
3
1 2 3
예제 출력 2
1
4
6
예제 입력 3
4
3 2 2 1
예제 출력 3
8
6
7
4
예제 입력 4
5
8 1 3 3 8
예제 출력 4
22
2
11
12
23
Comments