Pagini recente » Cod sursa (job #1306823) | Cod sursa (job #650480) | Cod sursa (job #300168) | Cod sursa (job #1928518) | Cod sursa (job #2072000)
#include <stdio.h>
#include <stdlib.h>
int v[100001];
int n;
int cer1(int x){
int r,p;
p=1<<17;
r=0;
while(p>0)
{
if(r+p<=n && v[r+p]<=x)
r+=p;
p/=2;
}
if(v[r]==x)
return r;
return -1;
}
int cer2(int x){
int r,p;
p=1<<17;
r=0;
while(p>0)
{
if(r+p<=n && v[r+p]<=x)
r+=p;
p/=2;
}
return r;
}
int cer3(int x){
int r,p;
p=1<<17;
r=0;
while(p>0)
{
if(r+p<=n && v[r+p]<x)
r+=p;
p/=2;
}
return r+1;
}
int rez(int cer,int x){
if(cer==0)
return cer1(x);
else if(cer==1)
return cer2(x);
return cer3(x);
}
int main()
{
int m,i,a,b,rz;
FILE*fi,*fo,*fin;
fi=fopen("cautbin.in","r");
fo=fopen("cautbin.out","w");
fin=fopen("cautbin.txt","r");
fscanf(fi,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fi,"%d",&v[i]);
fscanf(fi,"%d",&m);
for(i=0;i<m;i++)
{
fscanf(fi,"%d%d",&a,&b);
fscanf(fin,"%d",&rz);
fprintf(fo,"%d\n",rez(a,b));
}
fclose(fi);
fclose(fo);
return 0;
}