Mai intai trebuie sa te autentifici.
Cod sursa(job #2211364)
Utilizator | Data | 9 iunie 2018 23:35:20 | |
---|---|---|---|
Problema | Cautare binara | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.84 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
const int N_max =100001;
int v[N_max],n,p;
int main()
{
int i,m,cod,x;
f>>n;
for(i=1;i<=n;++i)
f>>v[i];
f>>m;
for(i=1;i<=m;++i)
{
f>>cod>>x;
switch(cod)
{
case 0:
p=upper_bound(v+1,v+n+1,x)-v;
p--;
if(v[p]==x)
g<<p<<"\n";
else
g<<"-1\n";
break;
case 1:
p=upper_bound(v+1,v+n+1,x)-v;
p--;
g<<p<<"\n";
break;
case 2:
p=lower_bound(v+1,v+n+1,x)-v;
g<<p<<"\n";
break;
}
}
return 0;
}