Pagini recente » Cod sursa (job #1516313) | Cod sursa (job #704859) | Cod sursa (job #1365418) | Cod sursa (job #69168) | Cod sursa (job #586848)
Cod sursa(job #586848)
#include <stdio.h>
FILE *f,*s;
int a,b;
int i,j,k,l,m,n;
int v[100005];
void Cauta1()
{
int st=1;
int dr=n;
int mj;
while(st<=dr)
{
mj=st+(dr-st)/2;
if(v[mj]==b && v[mj+1]!=b)
{
fprintf(s,"%d\n",mj);
break;
}
else if(v[mj]<=b)
st=mj+1;
else
dr=mj-1;
}
}
void Cauta2()
{
int st=1;
int dr=n;
int mj;
while(st<=dr)
{
mj=st+(dr-st)/2;
if(v[mj]<=b && v[mj+1]>b)
{
fprintf(s,"%d\n",mj);
break;
}
else if(v[mj]<=b)
st=mj+1;
else
dr=mj-1;
}
}
void Cauta3()
{
int st=1;
int dr=n;
int mj;
while(st<=dr)
{
mj=st+(dr-st)/2;
if(v[mj]>=b && v[mj-1]<b)
{
fprintf(s,"%d\n",mj);
break;
}
else if(v[mj]>=b)
dr=mj-1;
else
st=mj+1;
}
}
int main()
{
f=fopen("cautbin.in","r");
s=fopen("cautbin.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
fscanf(f,"%d",&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d",&a,&b);
if(a==0) Cauta1();
if(a==1) Cauta2();
if(a==2) Cauta3();
}
fclose(s);
return 0;
}