Source code for submission s937

Go to diff to previous submission

ants.cpp

  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <set>
  4.  
  5. using namespace std;
  6.  
  7. int main ( ) {
  8. int length, cnt, maxL, maxR, pos ,cntR, cntL, AI;
  9. set<int> startPos;
  10. char c;
  11. while(cin >> length >> cnt) {
  12. startPos.clear();
  13. cntR = cntL = 0;
  14. AI = 0;
  15. maxL = length;
  16. maxR = 0;
  17. while(cnt--) {
  18. cin >> pos;
  19. c = cin.get();
  20. c = cin.get();
  21. if(c == 'R') cntR++;
  22. if(c == 'L') cntL++;
  23. if(c == 'R' && pos < maxL) {maxL = pos; }
  24. if(c == 'L' && pos > maxR) {maxR = pos; }
  25. startPos.insert(pos);
  26. }
  27. //int finalPos1;
  28. int n = 0;
  29. set<int>::iterator iter, iter2;
  30. /*
  31. for ( iter = startPos . begin(); iter != startPos . end(); iter++, n++ )
  32. {
  33. if ( n == cntL - 1 ) break;
  34. }
  35. */
  36. cout << "The last ant will fall down in ";
  37. if(maxR >= length - maxL) cout << maxR;
  38. else cout << (length - maxL);
  39. cout << " seconds - started at ";
  40. if(maxR == length - maxL && cntR > 0 && cntL > 0) {
  41. for ( iter = startPos . begin(); iter != startPos . end(); iter++, n++ )
  42. {
  43. if ( n == cntL - 1 ) break;
  44. }
  45. iter2 = ++iter; iter--; cout << *iter << " and " << *(iter2);
  46. }
  47.  
  48.  
  49. else if((maxR >= length - maxL || cntR == 0 ) && cntL > 0) {
  50. for ( iter = startPos . begin(); iter != startPos . end(); iter++, n++ )
  51. {
  52. if ( n == cntL - 1 ) break;
  53. }
  54. cout << *iter;
  55. }
  56.  
  57. else if((maxR <= length - maxL || cntL == 0) && cntR > 0) {
  58. for ( iter = startPos . begin(); iter != startPos . end(); iter++, n++ )
  59. {
  60. if ( n == cntL) break;
  61. }
  62. cout << *iter;
  63. }
  64.  
  65.  
  66. /*
  67. if(maxR > length - maxL) cout << startPos[cntR-1];
  68. if(maxR < length - maxL)cout << startPos[cntR];
  69. if(maxR == length - maxL) cout << startPos[cntR-1] << " and " << startPos[cntR];
  70. */
  71. cout << "." << endl;
  72. //for(int i = 0; i < cntcp; i++) cout << "i" << startPos.[i] << endl;
  73. }
  74.  
  75. return 0;
  76. }
  77.  
  78. /*
  79. 90000 1
  80. 0 R
  81. 10 1
  82. 0 L
  83. 14 5
  84. 3 L
  85. 6 L
  86. 13 L
  87. 8 R
  88. 1 R
  89.  
  90. */
  91.  

Diff to submission s756

ants.cpp

--- c4.s756.cteam011.ants.cpp.0.ants.cpp
+++ c4.s937.cteam011.ants.cpp.0.ants.cpp
@@ -58,7 +58,7 @@
                         for ( iter = startPos . begin(); iter != startPos . end(); iter++, n++ )
                                 {
-                                        if ( n == cntL - 1 ) break;
+                                        if ( n == cntL) break;
                                 }
-                        iter2 = ++iter; iter--; cout << *iter2;
+                         cout << *iter;
                         }