Pagini recente » Cod sursa (job #2647583) | Cod sursa (job #679418) | Cod sursa (job #2194302) | Cod sursa (job #2941199) | Cod sursa (job #1870702)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int a[100000],N,i,j,result=-1,x,M;
short type;
int f0(int start,int end)
{
int mid=(start+end)/2;
if(start<=end)
{if(a[mid]>x)
return f0(start,mid-1);
else
if(a[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(a[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(a[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>>a[i];
fin>>M;
for(i=1;i<=M;i++)
{
fin>>type;
fin>>x;
if(type==0)
fout<<f0(1,N)<<"\n";
else
if(type==1)
fout<<f1(1,N)<<"\n";
else
fout<<f2(1,N)<<"\n";
}
return 0;
}