Cod sursa(job #2011191)

Utilizator stefan.botezStefan Botez stefan.botez Data 15 august 2017 15:30:24
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int n,m,i,x;
    vector<int> a;
    vector<int>::iterator j;
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) {scanf("%d",&x); a.push_back(x);}
scanf("%d",&m);
while(m)
{
    scanf("%d %d",&n,&x);
    if(n==0)
    {
        j=upper_bound(a.begin(),a.end(),x);
        if(binary_search(a.begin(),a.end(),x))
            printf("%d\n",(int)(j-a.begin()));
        else printf("-1\n");
    }
    if(n==1)
    {
        j=upper_bound(a.begin(),a.end(),x);
        printf("%d\n",(int)(j-a.begin()));
    }
    if(n==2)
    {
        j=lower_bound(a.begin(),a.end(),x);
        printf("%d\n",(int)(j-a.begin())+1);
    }
    m--;
}
return 0;
}