Cod sursa(job #1870702)

Utilizator ajajajEuuuuu ajajaj Data 6 februarie 2017 20:49:11
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#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;
}