Pagini recente » Cod sursa (job #3278628) | Cod sursa (job #2494230) | Cod sursa (job #2931292) | Cod sursa (job #710529) | Cod sursa (job #1168184)
#include <iostream>
#include <fstream>
using namespace std;
int n,i,a[100001],m,x,y,st,dr,nr,j,OK;
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++)f>>a[i];
f>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
st=1;
dr=n;
OK=0;
while(st<=dr)
{
nr=st+(dr-st)/2;
if(x==0&&a[nr]==y)
{
OK=1;
for(j=nr;j<=n;j++)if(a[j]!=y){g<<j-1<<'\n';break;}
}
if(x==1)if(a[nr]<=y&&(a[nr+1]>y||a[nr+1]==0))g<<nr<<'\n';
if(x==2)if(a[nr]>=y&&a[nr-1]<y)g<<nr<<'\n';
if(a[nr]>=y)dr=nr-1;
else st=nr+1;
}
if(x==0&&OK==0)g<<"-1"<<'\n';
}
f.close();
g.close();
}