Pagini recente » Cod sursa (job #491595) | Cod sursa (job #1422029) | Cod sursa (job #1778303) | Cod sursa (job #32240) | Cod sursa (job #2466658)
#include <cstdio>
int a[100001];
int main()
{
FILE *f=fopen("cautbin.in","r");
FILE *g=fopen("cautbin.out","w");
int N,M,tip,x,i,li,lf,m,nem=-1;
fscanf(f,"%d",&N);
for(i=1;i<=N;i++)
fscanf(f,"%d",&a[i]);
fscanf(f,"%d",&M);
for(i=1;i<=M;i++)
{
fscanf(f,"%d%d",&tip,&x);
if(tip==0)
{
li=1;
lf=N;
while(li<=lf)
{
m=(li+lf)/2;
if(x>=a[m])
li=m+1;
else lf=m-1;
m=(li+lf)/2;
}
if(li>N || x!=a[m])
fprintf(g, "%d \n",nem);
else fprintf (g, "%d \n", m);
}
if(tip==1)
{
li=1;
lf=N;
while(li<=lf)
{
m=(li+lf)/2;
if(x>=a[m])
li=m+1;
else lf=m-1;
m=(li+lf)/2;
}
fprintf(g, "%d \n",lf);
}
if(tip==2)
{
li=1;
lf=N;
while(li<=lf)
{
m=(li+lf)/2;
if(x<=a[m])
lf=m-1;
else li=m+1;
m=(li+lf)/2;
}
fprintf (g, "%d \n", li);
}
}
return 0;
}