Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- struct apple {
- unsigned num;
- unsigned down, up;
- apple(unsigned n = 0, unsigned d = 0, unsigned u = 0) : num(n), down(d), up(u) {}
- };
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- unsigned n;
- int s;
- cin >> n >> s;
- vector<apple> plus, minus;
- {
- unsigned a, b;
- apple c;
- for (unsigned i = 0; i < n; ++i) {
- cin >> a >> b;
- c = apple(i + 1, a, b);
- b < a ? minus.push_back(c) : plus.push_back(c);
- }
- }
- sort(plus.begin(), plus.end(),
- [](apple x, apple y) { return x.down < y.down; });
- sort(minus.begin(), minus.end(),
- [](apple x, apple y) { return x.up > y.up; });
- bool flag = true;
- for (unsigned i = 0; i < plus.size(); ++i) {
- s -= plus[i].down;
- if (s <= 0) { flag = false; }
- s += plus[i].up;
- }
- for (unsigned i = 0; i < minus.size(); ++i) {
- s -= minus[i].down;
- if (s <= 0) { flag = false; }
- s += minus[i].up;
- }
- if (flag) {
- for (unsigned i = 0; i < plus.size(); ++i) {
- cout << plus[i].num << " ";
- }
- for (unsigned i = 0; i < minus.size(); ++i) {
- cout << minus[i].num << " ";
- }
- } else {
- cout << -1;
- }
- cout << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement