Cod sursa(job #3340224)

Utilizator Quido_2012Vartic Edgard Quido_2012 Data 12 februarie 2026 20:36:10
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
#include <fstream>
#include <iostream>
using namespace std;

int a[200002], n;

int lowerBound(int target)
{
    int l=1, r=n+1;

    while(l<r){
        int mid = (l+r)/2;

        if(target <= a[mid])
            r = mid;
        else
            l = mid+1;
    }

    return l;
}

int upperBound(int target)
{
    int l=1, r=n+1;

    while(l<r){
        int mid = (l+r)/2;

        if(target < a[mid])
            r = mid;
        else
            l = mid+1;
    }

    return l;
}

int main()
{
    ifstream cin ("cautbin.in");
    ofstream cout ("cautbin.out");
    int i, T,x ,y;

    cin>>n;

    for(i=1; i<=n; i++)
        cin>>a[i];

    sort(a+1, a+n+1);
    cin >> T;
    for(i=1; i<=T; i++){
        cin>>x>>y;
        int r1 = lowerBound(x);
        int r2 = upperBound(y);

        cout<<r2-r1<<endl;
    }

    return 0;
}