Pagini recente » Cod sursa (job #373098) | Cod sursa (job #3178335) | Cod sursa (job #3178394) | Cod sursa (job #709624) | Cod sursa (job #1403958)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int m,y,n,a[100000],pz,p,i,x,mij,ls,ld,ok,var,poz;
int main()
{
f>>n;for(i=1;i<=n;i++) f>>a[i];f>>m;
for(;m;m--)
{
f>>y>>x;
ls=1;ld=n;ok=1;
mij=(ls+ld)/2;
while(ls<=ld&&ok)
{
if(a[mij]==x) {ok=0;p=mij;}
else if(x>a[mij]) {ls=mij+1;mij=(ls+ld)/2;}
else if(x<a[mij]) {ld=mij-1;mij=(ls+ld)/2;}
}
if(y==1) if(ok==1) g<<-1<<'\n';
ok=1;var=1;
for(i=p+1;i<=n;i++) if(a[i]==x) {pz=i;ok=0;}
if(y==0) g<<pz<<'\n';
if(y==1) {
if(ok==0) g<<pz<<'\n';
else {for(i=p;i>=1&&var;i--) {if(a[i]<=x) {poz=i;var=0;}}
g<<poz<<'\n';}
}
if(y==2)
{
while(a[p]==a[p-1]) p--;
g<<p;
}
}
}