Pagini recente » Cod sursa (job #1284569) | Cod sursa (job #1648685) | Cod sursa (job #722581) | Cod sursa (job #2419313) | Cod sursa (job #1380050)
#include<iostream>
#include<fstream>
using namespace std ;
int n,i,p,v[100009],t,l1,l2,mij,k,a,x;
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>t;
for(i=1;i<=t;i++)
{
f>>a>>x;
if(a==0)
{
l1=1;
l2=n;
k=0;
while(l1<=l2)
{
mij=(l1+l2)/2;
if(v[mij]==x&&v[mij+1]!=x){k=1;p=mij;break;}
else if(x<v[mij])l2=mij-1;
else l1=mij+1;
}
if(k==1)g<<p<<"\n";
else g<<"-1"<<"\n";
}
if(a==1)
{
l1=1;
l2=n;
k=0;
while(l1<=l2)
{
mij=(l1+l2)/2;
if(v[mij]<=x&&v[mij+1]!=x){k=1;p=mij;break;}
else if(x<v[mij])l2=mij-1;
else l1=mij+1;
}
if(k==1)g<<p<<"\n";
else g<<"-1"<<"\n";
}
if(a==2)
{
l1=1;
l2=n;
k=0;
while(l1<=l2)
{
mij=(l1+l2)/2;
if(v[mij]>=x&&v[mij-1]<x){k=1;p=mij;break;}
else if(x<=v[mij])l2=mij-1;
else l1=mij+1;
}
if(k==1)g<<p<<"\n";
else g<<"-1"<<"\n";
}
}
return 0;
}