fork 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. public static int NumArrNK(int n, int k) {
  11. int out = 1;
  12.  
  13. for (int i = 0; i <= k - 1; i++)
  14. out *= n - i;
  15.  
  16. return out;
  17. }
  18.  
  19. public static String ArrByR(int n, int k, int x){
  20. String s = "ABCDEFGHJKLMNOPQ";
  21. int[] Dig = new int[n];
  22.  
  23. int id, ank;
  24.  
  25. String out = "";
  26.  
  27. for (int i = 0; i < n; i++)
  28. Dig[i] = i;
  29.  
  30. for (int i = 1; i <= k; i++) {
  31.  
  32. ank = NumArrNK(n - i, k - i); //might be optimized
  33. id = x / ank;
  34. x = x % ank; //prepare for the next round
  35. out = out + s.charAt(Dig[id]);
  36.  
  37. for (int j = id; j < n - i; j++)
  38. Dig[j] = Dig[j + 1];
  39.  
  40. }
  41.  
  42. return out;
  43. }
  44.  
  45. public static void main (String[] args) throws java.lang.Exception
  46. {
  47. int dups = 0;
  48.  
  49. for (int i = 0; i < 60; i++) {
  50. //String s = getS(i, 5, 3);
  51. String s = ArrByR(5, 3, i);
  52.  
  53. System.out.print(i + ": " + s);
  54.  
  55. for (int j = 0; j < s.length() - 1; j++) {
  56. for (int k = j + 1; k < s.length(); k++) {
  57. if (s.charAt(k) == s.charAt(j)) {
  58. j = s.length();
  59. k = j;
  60. System.out.print("@dup!");
  61. dups++;
  62. }
  63. }
  64. }
  65. System.out.println();
  66. }
  67.  
  68. System.out.println("dups: " + dups);
  69. }
  70. }
Success #stdin #stdout 0.18s 36612KB
stdin
Standard input is empty
stdout
0: ABC
1: ABD
2: ABE
3: ACB
4: ACD
5: ACE
6: ADB
7: ADC
8: ADE
9: AEB
10: AEC
11: AED
12: BAC
13: BAD
14: BAE
15: BCA
16: BCD
17: BCE
18: BDA
19: BDC
20: BDE
21: BEA
22: BEC
23: BED
24: CAB
25: CAD
26: CAE
27: CBA
28: CBD
29: CBE
30: CDA
31: CDB
32: CDE
33: CEA
34: CEB
35: CED
36: DAB
37: DAC
38: DAE
39: DBA
40: DBC
41: DBE
42: DCA
43: DCB
44: DCE
45: DEA
46: DEB
47: DEC
48: EAB
49: EAC
50: EAD
51: EBA
52: EBC
53: EBD
54: ECA
55: ECB
56: ECD
57: EDA
58: EDB
59: EDC
dups: 0