16127 | 2025-04-03 17:48:27 | RRoli | 2015. november | cpp17 | Hibás válasz a 3. teszten | 1ms | 316 KiB |
#include <bits/stdc++.h>
using namespace std;
#define f first
#define s second
int n, p;
int main() {
cin >> n >> p;
vector<pair<int, int>> term(n), ossz(n);
for(int i = 0; i < n; i++) {
cin >> term[i].f >> term[i].s;
ossz[i] = make_pair(term[i].f + term[i].s, i);
}
sort(ossz.begin(), ossz.end());
int ln = 0, sum = 0;
for(int i = 0; i < n; i++) {
if(sum + ossz[i].f <= p) {
sum += ossz[i].f;
ln++;
}
else break;
}
if(ln == n-1) {
cout << ln;
return 0;
}
for(int i = 0; i < n; i++) {
if(i < ln) {
if(sum - (term[ossz[i].s].f-term[ossz[i].s].f/2) + ossz[ln].f <= p) {
cout << ln+1;
return 0;
}
} else {
if(sum + term[ossz[i].s].f/2 + term[ossz[i].s].s <= p) {
cout << ln+1;
return 0;
}
}
}
cout << ln;
return 0;
}
4
Elvárt kimenet:4
Ellenőrző kimenete:ok 1 number(s): "4"
4
Elvárt kimenet:4
Ellenőrző kimenete:ok 1 number(s): "4"
4
Elvárt kimenet:3
Ellenőrző kimenete:wrong answer 1st numbers differ - expected: '3', found: '4'