Task: | Brexit |
Sender: | Koodi Ilolle |
Submission time: | 2017-10-03 18:29:58 +0300 |
Language: | Java |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.11 s | details |
#2 | ACCEPTED | 0.14 s | details |
#3 | ACCEPTED | 0.13 s | details |
#4 | ACCEPTED | 0.16 s | details |
#5 | ACCEPTED | 0.12 s | details |
#6 | ACCEPTED | 0.12 s | details |
#7 | ACCEPTED | 0.14 s | details |
#8 | ACCEPTED | 0.16 s | details |
#9 | ACCEPTED | 0.13 s | details |
#10 | ACCEPTED | 0.16 s | details |
#11 | ACCEPTED | 0.13 s | details |
#12 | ACCEPTED | 0.17 s | details |
#13 | ACCEPTED | 0.11 s | details |
#14 | ACCEPTED | 0.12 s | details |
#15 | ACCEPTED | 0.17 s | details |
#16 | ACCEPTED | 0.14 s | details |
#17 | ACCEPTED | 0.43 s | details |
#18 | ACCEPTED | 0.42 s | details |
#19 | ACCEPTED | 0.38 s | details |
#20 | ACCEPTED | 0.34 s | details |
#21 | ACCEPTED | 0.22 s | details |
#22 | ACCEPTED | 0.28 s | details |
#23 | ACCEPTED | 0.20 s | details |
#24 | ACCEPTED | 0.24 s | details |
#25 | ACCEPTED | 0.43 s | details |
#26 | ACCEPTED | 0.56 s | details |
#27 | ACCEPTED | 0.56 s | details |
#28 | ACCEPTED | 0.54 s | details |
#29 | ACCEPTED | 0.38 s | details |
#30 | ACCEPTED | 0.42 s | details |
#31 | ACCEPTED | 0.38 s | details |
#32 | ACCEPTED | 0.42 s | details |
#33 | ACCEPTED | 0.40 s | details |
#34 | ACCEPTED | 0.38 s | details |
#35 | ACCEPTED | 1.17 s | details |
Code
import java.util.ArrayList; import java.util.Arrays; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author ahuotala */ public class Brexit { static ArrayList<Integer>[] list; static boolean[] left; static int[] limits; static int[] neighbours; // Eispä public static void main(String[] args) { IO io = new IO(); int countries = io.nextInt(); int connections = io.nextInt(); int home = io.nextInt(); int firstToLeave = io.nextInt(); list = new ArrayList[countries + 1]; for (int i = 0; i < connections; i++) { int n = io.nextInt(); int m = io.nextInt(); if (list[n] == null) { list[n] = new ArrayList(); } if (list[m] == null) { list[m] = new ArrayList(); } list[n].add(m); list[m].add(n); } left = new boolean[countries + 1]; limits = new int[countries + 1]; neighbours = new int[countries + 1]; for (int i = 1; i < limits.length; i++) { limits[i] = list[i].size() / 2; neighbours[i] = list[i].size(); } dfs(firstToLeave); neighbours[firstToLeave]--; io.println(left[home] ? "leave" : "stay"); io.close(); } private static void dfs(int n) { left[n] = true; for (Integer neighbour : list[n]) { // does neighbour leave? if (!left[neighbour] && neighbourLeftIleave(n, neighbour)) { dfs(neighbour); } } } private static boolean neighbourLeftIleave(int didLeave, int checkLeave) { neighbours[checkLeave]--; if (neighbours[checkLeave] <= limits[checkLeave]) { left[checkLeave] = true; return true; } return false; } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
4 4 4 1 1 2 1 3 2 3 3 4 |
correct output |
---|
leave |
user output |
---|
leave |
Test 2
Verdict: ACCEPTED
input |
---|
8 11 4 7 1 4 1 6 4 6 1 8 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 3
Verdict: ACCEPTED
input |
---|
8 8 8 1 1 2 1 3 2 4 3 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 4
Verdict: ACCEPTED
input |
---|
7 8 7 1 1 2 1 3 1 7 2 4 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 5
Verdict: ACCEPTED
input |
---|
8 10 5 1 1 2 1 3 1 7 2 4 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 6
Verdict: ACCEPTED
input |
---|
14 36 11 1 1 2 1 3 1 4 1 5 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 7
Verdict: ACCEPTED
input |
---|
14 35 11 1 1 2 1 3 1 4 1 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 8
Verdict: ACCEPTED
input |
---|
17 30 8 11 1 2 2 3 3 4 4 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 9
Verdict: ACCEPTED
input |
---|
4 2 3 1 1 3 2 4 |
correct output |
---|
leave |
user output |
---|
leave |
Test 10
Verdict: ACCEPTED
input |
---|
4 2 2 4 1 4 2 3 |
correct output |
---|
stay |
user output |
---|
stay |
Test 11
Verdict: ACCEPTED
input |
---|
20 19 6 17 1 19 8 9 16 18 4 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 12
Verdict: ACCEPTED
input |
---|
2 1 2 1 1 2 |
correct output |
---|
leave |
user output |
---|
leave |
Test 13
Verdict: ACCEPTED
input |
---|
2 1 1 1 1 2 |
correct output |
---|
leave |
user output |
---|
leave |
Test 14
Verdict: ACCEPTED
input |
---|
8 9 8 1 1 2 1 3 1 4 2 5 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 15
Verdict: ACCEPTED
input |
---|
2297 2679 1051 742 617 742 694 1379 156 742 36 531 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 16
Verdict: ACCEPTED
input |
---|
9 36 3 3 1 2 1 3 1 4 1 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 17
Verdict: ACCEPTED
input |
---|
150670 300000 64138 127023 50117 131948 138058 140437 80088 113710 1091 149845 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 18
Verdict: ACCEPTED
input |
---|
75351 299756 67121 54519 13237 54519 21423 29557 45590 57906 27901 54519 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 19
Verdict: ACCEPTED
input |
---|
75351 299755 66319 71133 70626 71133 9534 30979 52767 59421 3512 62528 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 20
Verdict: ACCEPTED
input |
---|
100000 100000 1 100000 1 2 2 3 3 4 4 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 21
Verdict: ACCEPTED
input |
---|
100000 99999 1 100000 1 2 1 3 1 4 1 5 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 22
Verdict: ACCEPTED
input |
---|
100000 99999 100000 1 1 2 1 3 1 4 1 5 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 23
Verdict: ACCEPTED
input |
---|
623 100000 201 369 1 2 2 3 1 3 2 4 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 24
Verdict: ACCEPTED
input |
---|
10007 100000 8980 3955 1 2 2 3 3 4 4 5 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 25
Verdict: ACCEPTED
input |
---|
200000 300000 98405 200000 91091 107131 187868 200000 169168 200000 107283 200000 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 26
Verdict: ACCEPTED
input |
---|
200000 200003 36335 152343 118063 160421 103074 184863 39554 133784 111165 151835 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 27
Verdict: ACCEPTED
input |
---|
200000 200003 36335 152343 118063 160421 103074 184863 39554 133784 111165 151835 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 28
Verdict: ACCEPTED
input |
---|
200000 199995 48807 188921 125668 137213 58484 92270 149853 172371 147281 183987 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 29
Verdict: ACCEPTED
input |
---|
150003 300000 5769 81807 1701 81807 67930 81807 95197 101956 8464 95197 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 30
Verdict: ACCEPTED
input |
---|
150003 300000 113708 52542 20542 140674 113708 118110 53131 140674 106124 140674 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 31
Verdict: ACCEPTED
input |
---|
150002 299998 108658 134482 7967 120234 7967 69327 4545 7967 48480 134482 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 32
Verdict: ACCEPTED
input |
---|
150002 299998 111144 48353 29987 48353 48353 80095 75893 89146 88333 111144 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 33
Verdict: ACCEPTED
input |
---|
199999 299996 111739 12359 173419 189883 35930 189883 72825 189883 175798 189883 ... |
correct output |
---|
leave |
user output |
---|
leave |
Test 34
Verdict: ACCEPTED
input |
---|
200000 299997 24068 147603 15273 189931 57932 189931 147603 188966 36101 147603 ... |
correct output |
---|
stay |
user output |
---|
stay |
Test 35
Verdict: ACCEPTED
input |
---|
200000 199999 182498 116219 59555 62379 33156 181870 103953 174756 101778 110925 ... |
correct output |
---|
leave |
user output |
---|
leave |