Pagini recente » Cod sursa (job #2778518) | Cod sursa (job #2624199) | Cod sursa (job #645980) | Cod sursa (job #2258989) | Cod sursa (job #1871434)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100001],N,i,j,result=-1,x,M;
short type;
int f0(int start,int end)
{
int mid=(start+end)/2;
if(start<=end)
{if(v[mid]>x)
return f0(start,mid-1);
else
if(v[mid]<x)
return f0(mid+1,end);
else
{
result=mid;
f0(mid+1,end);
}}
return result;
}
int f1(int start,int end)
{
int mid=(start+end)/2;
if(start<=end)
{if(v[mid]>x)
return f1(start,mid-1);
else
{result=mid;
return f1(mid+1,end);}
}
return result;
}
int f2(int start,int end)
{
int mid=(start+end)/2;
if(start<=end)
{
if(v[mid]<x)
return f2(mid+1,end);
else
{ result=mid;
return f2(start,mid-1);}
}
return result;}
int main()
{
fin>>N;
for(i=1;i<=N;i++)
fin>>v[i];
fin>>M;
for(i=1;i<=M;i++)
{
fin>>type>>x;
if(type==0)
fout<<f0(1,N)<<"\n";
else
if(type==1)
fout<<f1(1,N)<<"\n";
else
fout<<f2(1,N)<<"\n";
result=-1;
}
fin.close();
fout.close();
return 0;
}