fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. int n;
  8. cin >> n;
  9.  
  10. vector<pair<int, int>> contests(n);
  11. for (int i = 0; i < n; ++i) {
  12. cin >> contests[i].first >> contests[i].second;
  13. }
  14.  
  15. int lowerBound = -1000000000;
  16. int upperBound = 1000000000;
  17. int currentRating = 0;
  18.  
  19. for (int i = 0; i < n; ++i) {
  20. int change = contests[i].first;
  21. int division = contests[i].second;
  22.  
  23. if (division == 1) {
  24. lowerBound = max(lowerBound, 1900);
  25. } else {
  26. upperBound = min(upperBound, 1899);
  27. }
  28.  
  29. if (lowerBound > upperBound) {
  30. cout << "Impossible\n";
  31. return 0;
  32. }
  33.  
  34. currentRating += change;
  35. }
  36.  
  37. if (upperBound > 100000000) {
  38. cout << "Infinity\n";
  39. } else {
  40. cout << upperBound << "\n";
  41. }
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0.01s 5284KB
stdin
3
-7 1
5 2
8 2
stdout
Impossible