fork download
  1. /* UVa 161 -- RTE */
  2.  
  3. #include <iostream>
  4. #include <cstdio>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9. while(cin){
  10. int longest = 0, cycles[101], seconds;
  11. int index = 0;
  12. bool allisgreen = false;
  13. while(cin >> cycles[index], cycles[index]!=0){
  14. if(cycles[index] > longest)
  15. longest = cycles[index];
  16. index++;
  17. }
  18. seconds = 2*longest;
  19. while(!allisgreen && seconds <= 18000 ){
  20. for(int i = 0; i <= index; i++){
  21. // test here
  22. if((seconds/cycles[i]) %2 == 1){
  23. allisgreen = false;
  24. }
  25. else if(seconds -((seconds/cycles[i])*cycles[i]) > cycles[i] -5){
  26. allisgreen = false;
  27. }
  28. else{
  29. allisgreen = true;
  30. }
  31. if(allisgreen == false){
  32. break;
  33. }
  34. }
  35. seconds++;
  36. }
  37. if(cycles[0] == 0)
  38. continue;
  39. else if(seconds > 18000 ){
  40. cout << "Signals fail to synchronise in 5 hours\n";
  41. }
  42. else{
  43. if(seconds/3600 == 0)
  44. cout << "00:";
  45. else
  46. cout << "0" << seconds/3600 << ":";
  47. seconds-= (seconds/3600) * 3600;
  48. if((seconds/60) < 10){
  49. cout << "0" << seconds/60 << ":";
  50. }
  51. else{
  52. cout << seconds/60 << ":";
  53. }
  54. seconds -= (seconds/60) * 60;
  55. if(seconds <10)
  56. cout << "0" << seconds << ":\n";
  57. else
  58. cout << seconds << endl;
  59. }
  60. }
  61. return 0;
  62. }
Runtime error #stdin #stdout 0s 4520KB
stdin
19 20 0
30
25 35 0
0 0 0
stdout
Standard output is empty