Submission #1196409
Source Code Expand
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); static final long MOD = 1_000_000_007; public static void main(String[] args) { int N = sc.nextInt(); int X = sc.nextInt(); int Y = sc.nextInt(); ArrayList<ArrayList<Integer>> list = new ArrayList<>(); for (int i = 0; i < N; i++) { list.add(new ArrayList<>()); } for (int i = 0; i < N; i++) { int C = Integer.parseInt(sc.next()) - 1; int W = Integer.parseInt(sc.next()); list.get(C).add(W); } int[] min = new int[N]; int m = 2_000_000_000; for (int i = 0; i < N; i++) { if (list.get(i).isEmpty()) continue; Collections.sort(list.get(i)); min[i] = m; m = Math.min(m, list.get(i).get(0)); } m = 2_000_000_000; for (int i = N - 1; i >= 0; i--) { if (list.get(i).isEmpty()) continue; min[i] = Math.min(min[i], m); m = Math.min(m, list.get(i).get(0)); } ArrayList<Integer> count = new ArrayList<Integer>(); int sum = 0; for (int i = 0; i < N; i++) { if (list.get(i).isEmpty()) continue; if (list.get(i).get(0) + min[i] > Y) continue; int c = 0; for (int j = 0; j < list.get(i).size(); j++) { if (list.get(i).get(j) + min[i] > Y && list.get(i).get(j) + list.get(i).get(0) > X) break; ++c; } count.add(c); sum += c; } long ans = 1; for (int i = 1; i <= sum; i++) { ans *= i; ans %= MOD; } for (int c : count) { for (int i = 2; i <= c; i++) { ans *= inv(i); ans %= MOD; } } System.out.println(ans); } static long inv(long v) { return pow(v, (int) MOD - 2); } static long pow(long b, int p) { if (p == 0) return 1; if (p == 1) return b; long ret = pow(b, p / 2); ret *= ret; ret %= MOD; if (p % 2 == 1) { ret *= b; ret %= MOD; } return ret; } }
Submission Info
Submission Time | |
---|---|
Task | D - Colorful Balls |
User | tomerun |
Language | Java8 (OpenJDK 1.8.0) |
Score | 1000 |
Code Size | 2099 Byte |
Status | AC |
Exec Time | 883 ms |
Memory | 95712 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_example_01.txt | AC | 95 ms | 19668 KB |
00_example_02.txt | AC | 96 ms | 21588 KB |
00_example_03.txt | AC | 96 ms | 18772 KB |
01.txt | AC | 118 ms | 21972 KB |
02.txt | AC | 110 ms | 20308 KB |
03.txt | AC | 214 ms | 33220 KB |
04.txt | AC | 101 ms | 19924 KB |
05.txt | AC | 160 ms | 25556 KB |
06.txt | AC | 136 ms | 22740 KB |
07.txt | AC | 614 ms | 63988 KB |
08.txt | AC | 141 ms | 20948 KB |
09.txt | AC | 539 ms | 47924 KB |
10.txt | AC | 370 ms | 47448 KB |
11.txt | AC | 116 ms | 20820 KB |
12.txt | AC | 118 ms | 17492 KB |
13.txt | AC | 206 ms | 30520 KB |
14.txt | AC | 111 ms | 19540 KB |
15.txt | AC | 413 ms | 49248 KB |
16.txt | AC | 569 ms | 66920 KB |
17.txt | AC | 279 ms | 38076 KB |
18.txt | AC | 413 ms | 48836 KB |
19.txt | AC | 551 ms | 63636 KB |
20.txt | AC | 824 ms | 93816 KB |
21.txt | AC | 788 ms | 92788 KB |
22.txt | AC | 797 ms | 90212 KB |
23.txt | AC | 861 ms | 94220 KB |
24.txt | AC | 795 ms | 92528 KB |
25.txt | AC | 804 ms | 91436 KB |
26.txt | AC | 781 ms | 91264 KB |
27.txt | AC | 752 ms | 92092 KB |
28.txt | AC | 883 ms | 95356 KB |
29.txt | AC | 816 ms | 92624 KB |
30.txt | AC | 858 ms | 91640 KB |
31.txt | AC | 825 ms | 93532 KB |
32.txt | AC | 877 ms | 92060 KB |
33.txt | AC | 798 ms | 93284 KB |
34.txt | AC | 864 ms | 90696 KB |
35.txt | AC | 863 ms | 84232 KB |
36.txt | AC | 812 ms | 83264 KB |
37.txt | AC | 866 ms | 87288 KB |
38.txt | AC | 854 ms | 84904 KB |
39.txt | AC | 805 ms | 86124 KB |
40.txt | AC | 831 ms | 94632 KB |
41.txt | AC | 814 ms | 94100 KB |
42.txt | AC | 791 ms | 93480 KB |
43.txt | AC | 813 ms | 95712 KB |
44.txt | AC | 791 ms | 93172 KB |
45.txt | AC | 792 ms | 91616 KB |
46.txt | AC | 813 ms | 90748 KB |
47.txt | AC | 808 ms | 81092 KB |
48.txt | AC | 817 ms | 81292 KB |
49.txt | AC | 816 ms | 80972 KB |
50.txt | AC | 702 ms | 76976 KB |
51.txt | AC | 800 ms | 93492 KB |
52.txt | AC | 785 ms | 78112 KB |
53.txt | AC | 833 ms | 82252 KB |
54.txt | AC | 844 ms | 82212 KB |