fork download
  1. import java.util.Scanner;
  2.  
  3. class Ideone {
  4. public static boolean possible(String HH, int [] freq)
  5. {
  6. int[] local = new int[freq.length];
  7. for(int i=0; i<freq.length; i++)
  8. local[i] = freq[i];
  9.  
  10. if(local[HH.charAt(0)-'0'] <= 0)
  11. return false;
  12. local[HH.charAt(0)-'0']--;
  13.  
  14. if(local[HH.charAt(1)-'0'] <= 0)
  15. return false;
  16.  
  17. return true;
  18. }
  19.  
  20. public static void main (String[] args) throws java.lang.Exception
  21. {
  22. Scanner in = new Scanner(System.in);
  23. String l = in.nextLine();
  24. in.close();
  25.  
  26. String []t = l.split(",");
  27. int []freq = new int[10];
  28. for(int i=0; i<10; i++)
  29. freq[i]=0;
  30.  
  31. for(int i=0; i<t.length; i++) {
  32. freq[t[i].charAt(0)-'0']++;
  33. //System.out.println(t[i]);
  34. }
  35.  
  36. int h,m,s;
  37. String HH="", MM="", SS="";
  38. for(h=11; h>=0; h--) {
  39. HH = new Integer(h).toString();
  40. if (HH.length()==1) HH="0" + HH;
  41. if(possible(HH, freq)) {
  42. freq[HH.charAt(0)-'0']--;
  43. freq[HH.charAt(1)-'0']--;
  44. break;
  45. }
  46. }
  47. if (h<0) {
  48. System.out.println("Impossible");
  49. return;
  50. }
  51.  
  52. for(m=59; m>=0; m--) {
  53. MM = new Integer(m).toString();
  54. if (MM.length()==1) MM="0" + MM;
  55. if(possible(MM, freq)) {
  56. freq[MM.charAt(0)-'0']--;
  57. freq[MM.charAt(1)-'0']--;
  58. break;
  59. }
  60. }
  61. if (m<0) {
  62. System.out.println("Impossible");
  63. return;
  64. }
  65.  
  66. for(s=59; s>=0; s--) {
  67. SS = new Integer(s).toString();
  68. if (SS.length()==1) SS="0" + SS;
  69. if(possible(SS, freq)) {
  70. freq[SS.charAt(0)-'0']--;
  71. freq[SS.charAt(1)-'0']--;
  72. break;
  73. }
  74. }
  75. if (s<0) {
  76. System.out.println("Impossible");
  77. return;
  78. }
  79.  
  80. System.out.println(HH + ":" + MM + ":" + SS);
  81. }
  82. }
Success #stdin #stdout 0.07s 4386816KB
stdin
1,1,5,0,0,0,9,5,9
stdout
11:59:59