Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- int main()
- {
- vector < pair <int, int> > v;
- int cant, a, b, minimo = 0;
- cin >> cant;
- for(int i = 0; i < cant; i++)
- {
- cin >> a >> b;
- v.push_back({b, a});
- }
- sort(v.begin(), v.end());
- int i = 0, j = v.size()-1;
- while(i <= j)
- {
- minimo = max(minimo, (v[i].first + v[j].first));
- if(v[i].second > v[j].second)
- {
- v[i].second -= v[j].second;
- v[j].second = 0;
- j--;
- }
- else if(v[i].second < v[j].second)
- {
- v[j].second -= v[i].second;
- v[i].second = 0;
- i++;
- }
- else
- {
- v[j].second = 0;
- v[i].second = 0;
- i++;
- j--;
- }
- }
- cout << minimo << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment