Cod sursa(job #912750)
Utilizator | Denis Crudu crudu_denis | Data | 12 martie 2013 18:02:23 |
---|---|---|---|
Problema | Cautare binara | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.78 kb |
#include<fstream>
#include<algorithm>
using namespace std;
int v[100010],n,m;
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
int i;
for(i=0;i<n;i++)
fin>>v[i];
fin>>m;
int a,b,x;
for(i=1;i<=m;i++)
{
fin>>a>>b;
if(a==0)
{
x=upper_bound(v,v+n,b)-v;
if(v[x-1]==b)
fout<<x<<endl;
else
fout<<"-1"<<endl;
}
else
if(a==1)
{
x=upper_bound(v,v+n,b)-v;
fout<<x<<endl;
}
else
if(a==2)
{
x=lower_bound(v,v+n,b)-v;
fout<<x+1<<endl;
}
}
}