답안 #391083

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
391083 2021-04-17T19:35:25 Z yu_lim A Huge Tower (CEOI10_tower) Java 11
100 / 100
720 ms 45440 KB
import java.util.*;
import java.io.*;

public class tower {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer str = new StringTokenizer(br.readLine());
		int N = Integer.parseInt(str.nextToken());
		int D = Integer.parseInt(str.nextToken());
		int M = 1_000_000_009;

		int[] blocks = new int[N];
		str = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++)
			blocks[i] = Integer.parseInt(str.nextToken());
		br.close();

		Arrays.sort(blocks);
		long[] towers = new long[N]; // # ways to make a tower with i blocks
		towers[0] = 1;
		for (int i = 1, p = 0; i < N; i++) {
			while (p < i && blocks[p] + D < blocks[i])
				p++;
			towers[i] = ((i - p + 1) * towers[i - 1]) % M;
		}
		System.out.println(towers[N - 1]);
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 89 ms 8448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 74 ms 8368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 72 ms 8264 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 8404 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 69 ms 8512 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 8468 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 8300 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 73 ms 8288 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 70 ms 8448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 74 ms 8512 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 77 ms 8172 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 72 ms 8440 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 84 ms 8448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 72 ms 8436 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 106 ms 9652 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 283 ms 17016 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 352 ms 19264 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 720 ms 23580 KB Output is correct
2 Correct 713 ms 23140 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 586 ms 33028 KB Output is correct
2 Correct 591 ms 33232 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 634 ms 45440 KB Output is correct
2 Correct 704 ms 44916 KB Output is correct