fork download
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<vector>
  4. #include<stdio.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. class times
  10. {
  11. public:
  12. int h,m,s,ms;
  13. int mili;
  14.  
  15. times ()
  16. {
  17. h = m=s=ms =0;
  18. mili = 0;
  19. }
  20.  
  21.  
  22. times(int a,int b,int c,int d)
  23. {
  24. h = a,m=b,s=c,ms=d;
  25. make();
  26. }
  27.  
  28.  
  29. void bake( ) //do reverse of make() for given mili
  30. {
  31. long int x = mili;
  32. ms = x%1000;
  33. x /= 1000;
  34. s = x%60;
  35. x/= 60;
  36. m = x%60;
  37. x /= 60;
  38.  
  39. }
  40.  
  41.  
  42. void make() // calc total mili based on cur val of h,m,s and ms
  43. {
  44. this->mili = ms;
  45. this->mili += s*1000 + m*60*1000 + h*3600*1000;
  46. }
  47.  
  48.  
  49. };
  50.  
  51. int main()
  52. {
  53. ios_base::sync_with_stdio(false);
  54. cin.tie(0);
  55. int h,m,s,msl;
  56. bool flag;
  57. string str;
  58. scanf("%d:%d:%d:%d",&h,&m,&s,&msl);
  59.  
  60. times mid(h,m,s,msl);
  61. int low=0,high;
  62.  
  63. high = mid.mili;
  64. while( low < high )
  65. {
  66. mid.mili = (high+low)/2;
  67.  
  68.  
  69. mid.bake();
  70.  
  71.  
  72. printf("%d:%02d:%02d:%03d" , mid.h , mid.m,mid.s,mid.ms );
  73. fflush(stdout); //FLUSH
  74.  
  75. cin>>str; // the relic
  76.  
  77. if(str=="PLATINUM") // we have more time than req
  78. {
  79. low = mid.mili+1;
  80. //low.bake();
  81. flag = true;
  82. }
  83. else
  84. {
  85. high = mid.mili-1;
  86. // high.bake();
  87. flag = false;
  88. }
  89.  
  90. // break;
  91.  
  92. }
  93. if(!flag)
  94. {
  95. // mid.mili -= 1;
  96. //mid.bake();
  97. mid.mili = high;
  98. mid.bake();
  99. printf("PLATINUM: %d:%02d:%02d:%03d" ,mid.h , mid.m,mid.s,mid.ms);
  100. }
  101. else
  102. {
  103.  
  104. mid.mili = low;
  105. mid.bake();
  106. printf("PLATINUM: %d:%02d:%02d:%03d" ,mid.h , mid.m,mid.s,mid.ms);
  107.  
  108.  
  109. }
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. return 0;
  117. }
  118.  
  119.  
  120.  
Success #stdin #stdout 0s 3440KB
stdin
Standard input is empty
stdout
PLATINUM: 134515506:00:00:000