fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. const int MAX_MINUTE = 10;
  6.  
  7. class Timer {
  8. private:
  9. int min, sec;
  10.  
  11. public:
  12. Timer() : min(0), sec(0) {}
  13. Timer(int s) : min(s / 60), sec(s % 60) {
  14. while (min >= MAX_MINUTE) min -= MAX_MINUTE;
  15. }
  16. Timer( int m, int s) : min(m), sec(s) {
  17. while (min >= MAX_MINUTE) min -= MAX_MINUTE;
  18. }
  19.  
  20. Timer operator++ (){
  21. sec++;
  22. if(sec>=60){
  23. min+=sec/60;
  24. sec%=60;
  25. }
  26. if(min>10 || (min==10 && sec!=0)) min%=10;
  27. return *this;
  28. };
  29.  
  30. Timer operator-- (int){
  31. Timer c(min,sec);
  32. if(c.sec==0){
  33. min--;
  34. sec=59;
  35. }
  36. return c;
  37. };
  38.  
  39. friend ostream& operator<<(ostream& out, const Timer& foo){
  40. out<<setw(2)<<setfill('0')<<foo.min<<" : ";
  41. if(foo.sec >= 10) out<<foo.sec;
  42. else out<<setw(2)<<setfill('0')<<foo.sec;
  43.  
  44. return out;
  45. }
  46.  
  47. friend Timer operator+ (const Timer& a, const Timer& b){
  48. Timer c;
  49. c.min=a.min+b.min;
  50. c.sec=a.sec+b.sec;
  51. if(c.sec>=60){
  52. c.min++;
  53. c.sec%=60;
  54. }
  55. if(c.min>10 || (c.min==10 && c.sec!=0)) c.min%=10;
  56.  
  57. return c;
  58. }
  59. };
  60.  
  61.  
  62.  
  63.  
  64. int main() {
  65. int input_1, input_2;
  66. while (cin >> input_1 >> input_2){
  67. Timer foo;
  68. foo = foo + input_1;
  69. cout << foo << endl;
  70. foo = input_2 + foo;
  71. cout << foo << endl;
  72. cout << ++foo << endl;
  73. foo = input_2;
  74.  
  75. for (int i = input_2; i >= 0; --i) cout << foo-- << endl;
  76. }
  77.  
  78. return 0;
  79. }
Success #stdin #stdout 0.01s 5316KB
stdin
200
10
stdout
03 : 20
03 : 30
03 : 31
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10
00 : 10