1472021-02-02 17:27:44kidesoHáromszögekcpp11Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/02ms1868 KiB
2Accepted0/01ms1868 KiB
3Accepted0/09ms2536 KiB
4Accepted4/43ms2064 KiB
5Accepted2/23ms2096 KiB
6Accepted1/1103ms7924 KiB
7Accepted1/197ms9640 KiB
8Accepted2/293ms11404 KiB
9Accepted2/293ms13176 KiB
10Accepted1/185ms14252 KiB
11Accepted1/179ms15280 KiB
12Accepted2/279ms16460 KiB
13Accepted2/286ms17560 KiB
14Accepted1/1120ms19064 KiB
15Accepted1/1103ms20772 KiB
16Accepted1/1101ms22268 KiB
17Accepted1/1103ms22996 KiB
18Accepted1/192ms24500 KiB
19Accepted2/290ms26044 KiB
20Accepted2/2104ms27764 KiB
21Accepted3/3104ms29564 KiB
22Accepted5/5112ms30292 KiB
23Accepted5/5115ms30500 KiB