Pagini recente » Cod sursa (job #3178380) | Cod sursa (job #1346353) | Cod sursa (job #2769078) | Cod sursa (job #868764) | Cod sursa (job #1247137)
#include <stdio.h>
using namespace std;
FILE *fin ,*fout;
int v[100001] ,m ,n ,q ,pas=1 ,x;
int main()
{
int i ,j;
fin = fopen("cautbin.in" ,"r");
fout = fopen ("cautbin.out" ,"w");
fscanf(fin ,"%d" ,&n);
for(i=1;i<=n;i++)
{
fscanf(fin ,"%d" ,&v[i]);
}
fscanf (fin , "%d" ,&m);
for(j=1;j<=m;j++)
{
fscanf (fin ,"%d%d" ,&q ,&x);
if(q==0)
{
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=x)i+=pas;
pas/=2;
}
if(v[i]==x)fprintf(fout ,"%d\n" ,i);
else fprintf(fout ,"-1\n");
}
}
if(q==1)
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=x)i+=pas;
pas/=2;
}
fprintf(fout ,"%d\n" ,i);
}
if(q==2)
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<x)i+=pas;
pas/=2;
}
fprintf(fout ,"%d\n" ,i+1);
}
}
return 0;
}