1472021-02-02 17:27:44kidesoHáromszögekcpp11Elfogadva 40/40120ms30500 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>

#define ll long long
using namespace std;

//ifstream cin("harom.in");
//ofstream cout("harom.out");

vector <ll> megold, x;
vector <pair<ll, ll> > y;
ll N, Q, a, b, i, j;

int main()
{
    cin >> N >> Q;
    x.resize(N);

    for (i = 0; i < N; ++i)
        cin >> x[i];

    sort(x.begin(), x.end());

    ll k = x.back();
    //x.push_back(k + 1);

    y.push_back({ 0,0 });
    for (i = 1; i <= Q; ++i)
    {
        cin >> a >> b;
        y.push_back({ abs(b - a) + 1, min(a + b - 1,k) });
    }

    megold.resize(Q + 1, 0);

    vector <ll>::iterator it1, it2;
    ll ind1, ind2;

    for (i = 1; i <= Q; ++i)
    {
        it1 = lower_bound(x.begin(), x.end(), y[i].first);
        it2 = lower_bound(x.begin(), x.end(), y[i].second);
        if (*it2 > y[i].second) --it2;
        
        ind1 = it1 - x.begin();
        ind2 = it2 - x.begin();
         
        megold[i] = ind2 - ind1 + 1;
    }

    for (i = 1; i <= Q; ++i)
        cout << megold[i] << '\n';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/02ms1868 KiB
2Elfogadva0/01ms1868 KiB
3Elfogadva0/09ms2536 KiB
4Elfogadva4/43ms2064 KiB
5Elfogadva2/23ms2096 KiB
6Elfogadva1/1103ms7924 KiB
7Elfogadva1/197ms9640 KiB
8Elfogadva2/293ms11404 KiB
9Elfogadva2/293ms13176 KiB
10Elfogadva1/185ms14252 KiB
11Elfogadva1/179ms15280 KiB
12Elfogadva2/279ms16460 KiB
13Elfogadva2/286ms17560 KiB
14Elfogadva1/1120ms19064 KiB
15Elfogadva1/1103ms20772 KiB
16Elfogadva1/1101ms22268 KiB
17Elfogadva1/1103ms22996 KiB
18Elfogadva1/192ms24500 KiB
19Elfogadva2/290ms26044 KiB
20Elfogadva2/2104ms27764 KiB
21Elfogadva3/3104ms29564 KiB
22Elfogadva5/5112ms30292 KiB
23Elfogadva5/5115ms30500 KiB