fork download
  1. import java.util.ArrayList;
  2. import java.util.HashSet;
  3. import java.util.Scanner;
  4.  
  5. public class Main {
  6. public static void main(String[] a) {
  7. try (Scanner in = new Scanner(System.in)) {
  8. while (in.hasNext()) try (Scanner line = new Scanner(in.nextLine().replace("[", "").replace("]", "").replace(",", ""))) {
  9. ArrayList<Integer> set = new ArrayList<>();
  10. while (line.hasNext()) set.add(line.nextInt());
  11. subsetSum(set);
  12. }
  13. }
  14. }
  15. public static boolean subsetSum(ArrayList<Integer> set) {
  16. ArrayList<ArrayList<Boolean>> perms = new ArrayList<>();
  17. perms.add(new ArrayList<Boolean>());
  18. for (int i = 0; i < set.size(); ++i) {
  19. ArrayList<ArrayList<Boolean>> copies = new ArrayList<>();
  20. for (ArrayList<Boolean> perm : perms) {
  21. ArrayList<Boolean> copy = new ArrayList<>(perm);
  22. perm.add(true);
  23. copy.add(false);
  24. copies.add(copy);
  25. }
  26. perms.addAll(copies);
  27. }
  28. for (ArrayList<Boolean> perm : perms) {
  29. if (perm.size() != set.size()) throw new RuntimeException("wtf");
  30. HashSet<Integer> subSet = new HashSet<>();
  31. for (int i=0; i<set.size(); ++i) if (perm.get(i)) subSet.add(set.get(i));
  32. if (subsetZero(subSet)) {
  33. System.out.println(subSet);
  34. return true;
  35. }
  36. }
  37. System.out.println("false");
  38. return false;
  39. }
  40. public static boolean subsetZero(HashSet<Integer> line) {
  41. if (line.size() == 0) return false;
  42. int sum = 0;
  43. for (int x : line) sum+=x;
  44. return sum == 0;
  45. }
  46. }
Success #stdin #stdout 1.86s 4386816KB
stdin
[-83314, -82838, -80120, -63468, -62478, -59378, -56958, -50061, -34791, -32264, -21928, -14988, 23767, 24417, 26403, 26511, 36399, 78055]
[-92953, -91613, -89733, -50673, -16067, -9172, 8852, 30883, 46690, 46968, 56772, 58703, 59150, 78476, 84413, 90106, 94777, 95148]
[-94624, -86776, -85833, -80822, -71902, -54562, -38638, -26483, -20207, -1290, 12414, 12627, 19509, 30894, 32505, 46825, 50321, 69294]
[-83964, -81834, -78386, -70497, -69357, -61867, -49127, -47916, -38361, -35772, -29803, -15343, 6918, 19662, 44614, 66049, 93789, 95405]
[-68808, -58968, -45958, -36013, -32810, -28726, -13488, 3986, 26342, 29245, 30686, 47966, 58352, 68610, 74533, 77939, 80520, 87195]
[-97162, -95761, -94672, -87254, -57207, -22163, -20207, -1753, 11646, 13652, 14572, 30580, 52502, 64282, 74896, 83730, 89889, 92200]
[-93976, -93807, -64604, -59939, -44394, -36454, -34635, -16483, 267, 3245, 8031, 10622, 44815, 46829, 61689, 65756, 69220, 70121]
[-92474, -61685, -55348, -42019, -35902, -7815, -5579, 4490, 14778, 19399, 34202, 46624, 55800, 57719, 60260, 71511, 75665, 82754]
[-85029, -84549, -82646, -80493, -73373, -57478, -56711, -42456, -38923, -29277, -3685, -3164, 26863, 29890, 37187, 46607, 69300, 84808]
[-87565, -71009, -49312, -47554, -27197, 905, 2839, 8657, 14622, 32217, 35567, 38470, 46885, 59236, 64704, 82944, 86902, 90487]
stdout
false
false
false
false
false
[89889, -95761, 74896, -87254, 30580, -97162, -1753, 92200, 14572, -20207]
[-59939, -36454, 69220, -44394, 61689, -64604, 267, 46829, 65756, 10622, -93807, 44815]
[-42019, -7815, 71511, 57719, -92474, 14778, 34202, -35902]
[29890, -3685, -84549, -57478, -42456, 84808, 26863, 46607]
[82944, 2839, 905, -87565, 14622, -49312, 35567]