161272025-04-03 17:48:27RRoli2015. novembercpp17Hibás válasz a 3. teszten1ms316 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;
}
1 - Elfogadva
Memória: 316KiB
Idő: 1ms

Program kimenete:
4
Elvárt kimenet:
4
Ellenőrző kimenete:
ok 1 number(s): "4"

2 - Elfogadva
Memória: 316KiB
Idő: 1ms

Program kimenete:
4
Elvárt kimenet:
4
Ellenőrző kimenete:
ok 1 number(s): "4"

3 - Hibás válasz
Memória: 316KiB
Idő: 1ms

Program kimenete:
4
Elvárt kimenet:
3
Ellenőrző kimenete:
wrong answer 1st numbers differ - expected: '3', found: '4'