Pagini recente » Cod sursa (job #926114) | Cod sursa (job #858997) | Cod sursa (job #1235138) | Cod sursa (job #1948217) | Cod sursa (job #922334)
Cod sursa(job #922334)
#include <iostream>
#include <fstream>
using namespace std;
int a[100001],n,x,y,i,k,ok,j,m;
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>n;
for(i=1;i<=n;i++)fin>>a[i];
fin>>m;
for(k=1;k<=m;k++)
{
fin>>y>>x;
if(y==0)
{
ok=0;
for(i=1;i<=n;i++)if(a[i]==x)ok=1;
if(ok==1)
{ i=1;j=n;
y=(i+j)/2;
while(a[y]!=x)
{
if(a[y]<x)i=y;
else j=y;
y=(i+j)/2;
}
while(a[y+1]==x)
{
y++;
}
fout<<y;
}
else fout<<-1;
fout<<"\n";
}
if(y==1)
{
i=n;
i=1;j=n;
y=(i+j)/2;
while(a[y]!=x)
{
if(a[y]<x)i=y;
else j=y;
y=(i+j)/2;
}
while(a[y+1]<=x){y++;}
fout<<y<<"\n";
}
if(y==2)
{
i=1;j=n;
y=(i+j)/2;
while(a[y]!=x)
{
if(a[y]<x)i=y;
else j=y;
y=(i+j)/2;
}
while(a[y-1]>=x){y--;}
fout<<y<<"\n";
}
}
fin.close();
fout.close();
return 0;
}