fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. static int[] occurrences;
  11. static int[] target;
  12.  
  13. static void bruteForce()
  14. {
  15. occurrences = new int[10];
  16. target = new int[10];
  17. for (int i = 0; i < 10; i++)
  18. occurrences[i] = 1;
  19.  
  20. bruteForce(0);
  21. }
  22.  
  23.  
  24. static boolean bruteForce(int value)
  25. {
  26. if (value > 9)
  27. {
  28. for (int i = 0; i < 10; i++)
  29. if (occurrences[i] != target[i])
  30. return false;
  31. System.out.println(Arrays.toString(target));
  32. return true;
  33. }
  34. for (int i = 1; i < 10; i++)
  35. {
  36. target[value] = i;
  37. // fail early - not strictly necessary, but should help running time
  38. if (value >= i && occurrences[i] + 1 > target[i])
  39. continue;
  40. occurrences[i]++;
  41.  
  42. // recurse
  43. if (bruteForce(value + 1))
  44. return true;
  45.  
  46. occurrences[i]--;
  47. }
  48. return false;
  49. }
  50.  
  51. public static void main(String[] args)
  52. {
  53. bruteForce();
  54. }
  55. }
Success #stdin #stdout 2.72s 380160KB
stdin
Standard input is empty
stdout
[1, 7, 3, 2, 1, 1, 1, 2, 1, 1]