Cod sursa(job #1871434)

Utilizator ajajajEuuuuu ajajaj Data 7 februarie 2017 13:17:15
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#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;
}