Pagini recente » Cod sursa (job #2146030) | Cod sursa (job #1185611) | Cod sursa (job #1813989) | Cod sursa (job #1545722) | Cod sursa (job #490322)
Cod sursa(job #490322)
#include "stdio.h"
using namespace std;
int n,v[100];
int cerinta1(int x)
{
int p,u,m;
p=1;
u=n;
while(p<=u)
{
m=(p+u)/2;
if(v[m]<=x)
p=m+1;
else
u=m-1;
}
if(v[p-1]==x)
return p-1;
else
return 1;
}
int cerinta2(int x)
{
int p,u,m;
p=1;
u=n;
while(p<=u)
{
m=(p+u)/2;
if(v[m]<=x)
p=m+1;
else
u=m-1;
}
return p-1;
}
int cerinta3(int x)
{
int p,u,m;
p=1;
u=n;
while(p<=u)
{
m=(p+u)/2;
if(v[m]<x)
p=m+1;
else
u=m-1;
}
return u+1;
}
int main()
{
FILE* f=fopen("cautbin.in","r");
FILE* g=fopen("cautbin.out","w");
int x,caz,M,i;
fscanf(f,"%i",&n);
for(i=1;i<=n;i++)
fscanf(f,"%i",&v[i]);
fscanf(f,"%i",&M);
for(i=1;i<=M;i++)
{
fscanf(f,"%i %i",&caz,&x);
switch(caz)
{
case 0:
fprintf(g,"%i\n",cerinta1(x));
break;
case 1:
fprintf(g,"%i\n",cerinta2(x));
break;
case 2:
fprintf(g,"%i\n",cerinta3(x));
break;
}
}
return 0;
}