Cod sursa(job #1871393)
Utilizator | Data | 7 februarie 2017 12:30:45 | |
---|---|---|---|
Problema | Cautare binara | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.72 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int n,i,v[100001],p,m,a,b;
int main()
{
in>>n;
for(i=1; i<=n; i++)in>>v[i];
in>>m;
while(m)
{
in>>a>>b;
if(a==0)
{
p=upper_bound(v+1,v+n+1,b)-v;
if(v[p-1]==b)out<<p-1<<'\n';
else
{
out<<"-1"<<'\n';
}
}
else{if(a==1)
{
p=upper_bound(v+1,v+n+1,b)-v;
out<<p-1<<'\n';
}
else{
{
p=lower_bound(v+1,v+n+1,b)-v;
out<<p<<'\n';
}
}}m--;}
return 0;
}