Cod sursa(job #2076971)
| Utilizator | Data | 27 noiembrie 2017 15:36:36 | |
|---|---|---|---|
| Problema | Cautare binara | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100001],a,x,i,k,n,l;
int main()
{fin>>n;
for(i=1;i<=n;i++){fin>>v[i];}
fin>>k;
for(i=1;i<=k;i++){fin>>x>>a;
if(x==0){l=upper_bound(v+1,v+n+1,a)-v-1;
if(v[l]==a)fout<<l;
else{fout<<-1;}
}
if(x==1){l=upper_bound(v+1,v+n+1,a)-v-1;
fout<<l;}
if(x==2){l=lower_bound(v+1,v+n+1,a)-v;
fout<<l;}
fout<<endl;
}
return 0;
}
