fork download
  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4. int StringToInt(string text)
  5. {
  6. std::stringstream bufor(text);
  7. int i;
  8. bufor>>i;
  9. return i;
  10. }
  11. string IntToString(int text)
  12. {
  13. std::stringstream bufor;
  14. bufor<<text;
  15. return bufor.str();
  16.  
  17. }
  18. string ReverseString(string text)
  19. {
  20. string _text;
  21. for(int i = text.length()-1;i >=0;i--)
  22. _text += text[i];
  23. return _text;
  24. }
  25. class time
  26. {
  27. private:
  28. int hours;
  29. int minutes;
  30.  
  31. string sTime;
  32. string sHours;
  33. string sMinutes;
  34.  
  35. public:
  36. string GetStringHours()
  37. {
  38. return sHours;
  39. }
  40. string GetStringMinutes()
  41. {
  42. return sMinutes;
  43. }
  44. int GetHours()
  45. {
  46. return hours;
  47. }
  48. int GetMinutes()
  49. {
  50. return minutes;
  51. }
  52. void SetTime(std::string _time)
  53. {
  54. hours = StringToInt(_time.substr(0,2));
  55. minutes = StringToInt(_time.substr(3,2));
  56. SetTime();
  57. }
  58. string GetTime()
  59. {
  60. return sTime;
  61. }
  62. void AddMinutes(int _minut)
  63. {
  64. minutes += _minut;
  65. SetTime();
  66. }
  67. void AddHours(int _hour)
  68. {
  69. hours += _hour;
  70. SetTime();
  71. }
  72.  
  73. private:
  74. void CheckCompatibility()
  75. {
  76. int restOfMinutes = 0;
  77. int restOfHours = 0;
  78.  
  79. if(minutes >= 60)
  80. {
  81. restOfMinutes = minutes % 60;
  82. restOfHours = minutes / 60;
  83. minutes = restOfMinutes;
  84. hours += restOfHours;
  85. CheckCompatibility();
  86. }
  87. if(hours > 23)
  88. hours %= 24;
  89. }
  90. void SetTime()
  91. {
  92. CheckCompatibility();
  93. sTime.clear();
  94. sHours = IntToString(hours);
  95. sMinutes = IntToString(minutes);
  96.  
  97. if(sHours.length() == 1) sHours = '0' + sHours;
  98. if(sMinutes.length() == 1) sMinutes = '0' + sMinutes;
  99.  
  100. sTime = sHours;
  101. sTime += ':';
  102. sTime += sMinutes;
  103. }
  104. };
  105. bool IsPalindrom(std::string palindrom)
  106. {
  107. for(std::size_t i = 0; i < palindrom.length() ; i++)
  108. if( palindrom[i] != palindrom[palindrom.length()-1-i])
  109. return false;
  110. return true;
  111. };
  112. bool CheckIfIsPalindrom(time *_time)
  113. {
  114. string palindrom;
  115. if(_time->GetHours() != 0)
  116. {
  117. palindrom += _time->GetStringHours();
  118. palindrom += _time->GetStringMinutes();
  119. return IsPalindrom(palindrom);
  120. }
  121. else
  122. {
  123. palindrom += _time->GetStringMinutes();
  124. if(_time->GetMinutes() < 10)
  125. return true;
  126. else
  127. return IsPalindrom(palindrom);
  128. }
  129.  
  130. return false;
  131. };
  132. int main()
  133. {
  134. int n;
  135. cin>>n;
  136. string godzina;
  137. time *czas = new time[n];
  138. for( int i = 0; i < n ; i++ )
  139. {
  140. bool Palindrom = false;
  141.  
  142. cin>>godzina;
  143. czas[i].SetTime(godzina);
  144. czas[i].AddMinutes(1);
  145.  
  146. while(!CheckIfIsPalindrom(&czas[i]))
  147. czas[i].AddMinutes(1);
  148. cout<<czas[i].GetTime()<<endl;
  149.  
  150. };
  151. delete []czas;
  152. };
  153.  
  154.  
  155.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:112: error: '_time' was not declared in this scope
prog.cpp:113: error: expected ',' or ';' before '{' token
stdout
Standard output is empty