4095 2023. 03. 14 11:49:17 1478 Gladiátorok (40 pont) cpp17 Elfogadva 40/40 324ms 6296 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    //ifstream cin("in.txt");
    int n;
    cin >> n;
    int q;
    cin >> q;

    vector<pair<int, int>> szen(n + 1);
    for(int i = 1; i <= n; i++){
        cin >> szen[i].first >> szen[i].second;
    }
    sort(szen.begin(), szen.end());
    /*for(int i = 1; i <= n; i++){
        cout << szen[i].first << " " << szen[i].second << '\n';
    }
    cout << '\n';*/
    vector<int> hps(n + 1);
    hps[1] = szen[1].first;
    int m = szen[1].second;
    for(int i = 2; i <= n; i++){
        hps[i] = max(hps[i - 1], szen[i].first - m);
        m += szen[i].second;
    }
    /*for(int i = 1; i <= n; i++){
        cout << hps[i] << " ";
    }*/
    while(q--){
        int a;
        cin >> a;
        cout << upper_bound(hps.begin(), hps.end(), a) - hps.begin() - 1 << " ";
    }



    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1816 KiB
2 Elfogadva 0/0 76ms 2756 KiB
3 Elfogadva 2/2 3ms 2276 KiB
4 Elfogadva 2/2 3ms 2484 KiB
5 Elfogadva 2/2 8ms 2860 KiB
6 Elfogadva 2/2 8ms 2820 KiB
7 Elfogadva 2/2 8ms 3068 KiB
8 Elfogadva 2/2 8ms 3024 KiB
9 Elfogadva 2/2 9ms 3284 KiB
10 Elfogadva 2/2 8ms 3236 KiB
11 Elfogadva 2/2 32ms 3612 KiB
12 Elfogadva 2/2 165ms 5620 KiB
13 Elfogadva 2/2 229ms 4384 KiB
14 Elfogadva 2/2 247ms 5880 KiB
15 Elfogadva 2/2 321ms 5836 KiB
16 Elfogadva 2/2 250ms 5832 KiB
17 Elfogadva 2/2 246ms 5836 KiB
18 Elfogadva 2/2 303ms 5964 KiB
19 Elfogadva 2/2 202ms 6176 KiB
20 Elfogadva 2/2 202ms 6296 KiB
21 Elfogadva 2/2 275ms 6236 KiB
22 Elfogadva 2/2 324ms 6148 KiB