Pagini recente » Cod sursa (job #833111) | Cod sursa (job #3128764) | Cod sursa (job #1679249) | Cod sursa (job #1234945) | Cod sursa (job #1247136)
#include <stdio.h>
using namespace std;
FILE *fin ,*fout;
int v[100001] ,m ,n ,q ,pas=1 ,b[100001];
int main()
{
int i ,j;
fin = fopen("cautbin.in" ,"r");
fout = fopen ("cautbin.out" ,"w");
fscanf(fin ,"%d" ,&n);
for(i=1;i<=n;i++)
{
fscanf(fin ,"%d" ,&v[i]);
}
fscanf (fin , "%d" ,&m);
for(j=1;j<=m;j++)
{
fscanf (fin ,"%d%d" ,&q ,&b[j]);
if(q==0)
{
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=b[j] )i+=pas;
pas/=2;
}
if(v[i]==b[j])fprintf(fout ,"%d\n" ,i);
else fprintf(fout ,"-1\n");
}
}
if(q==1)
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<=b[j])i+=pas;
pas/=2;
}
fprintf(fout ,"%d\n" ,i);
}
if(q==2)
{
i=0;
pas=1<<17;
while(pas!=0)
{
if(i+pas<=n && v[i+pas]<b[j])i+=pas;
pas/=2;
}
fprintf(fout ,"%d\n" ,i+1);
}
}
return 0;
}