Pagini recente » Cod sursa (job #1050117) | Cod sursa (job #2977408) | Cod sursa (job #2515006) | Cod sursa (job #1823999) | Cod sursa (job #259650)
Cod sursa(job #259650)
#include<stdio.h>
#define nmax 100001
FILE *f=fopen("cautbin.in","r"), *g=fopen("cautbin.out","w");
int n,m,i,k,N,NN,p,x,a[nmax];
int main()
{
fscanf(f,"%d",&n,&m);
for(i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
for(N=1;N<=n; N<<=1);
fscanf(f,"%d",&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&p,&x);
if(p<2)
{
k=0;
for(NN=N;NN;NN>>=1)
{
if(k+NN<=n && a[k+NN]<=x)
k+=NN;
}
if(!p && a[k]!=x) fprintf(g,"-1\n");
else fprintf(g,"%d\n",k);
}
else
{
k=n;
for(NN=N;NN;NN>>=1)
{
if(k-NN && a[k-NN]>=x)
k-=NN;
}
fprintf(g,"%d\n",k);
}
}
fclose(f);
fclose(g);
return 0;
}