Pagini recente » Cod sursa (job #2407529) | Cod sursa (job #1325526) | Cod sursa (job #650195) | Cod sursa (job #270753) | Cod sursa (job #774955)
Cod sursa(job #774955)
#include<fstream>
using namespace std;
int n,m,i,v[100001],c,e,rez,begin,end;
int comanda0(int ee)
{begin=1; end=n;
int mij;
while(begin<end-1)
{mij=(begin+end)/2;
if(v[mij]<=ee)
begin=mij;
else
end=mij;
}
return mij;
}
int comanda2(int ee)
{begin=1; end=n;
int mij;
while(begin<end-1)
{mij=(begin+end)/2;
if(v[mij]<ee)
begin=mij;
else
end=mij;
}
return mij;
}
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++)
scanf("%d",&v[i]);
scanf("%d",&m);
for(i=1; i<=m; i++)
{scanf("%d %d",&c,&e);
if(c==0)
{rez=comanda0(e);
if(v[rez]==e)
printf("%d\n",rez);
else
printf("-1\n");}
if(c==1)
{rez=comanda0(e);
printf("%d\n",rez);}
if(c==2)
{rez=comanda2(e);
printf("%d\n",rez);}
}
return 0;}