Cod sursa(job #1513378)

Utilizator georgesotocSotoc George Andrei georgesotoc Data 29 octombrie 2015 13:55:47
Problema Numarare triunghiuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.96 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int n;
int v[100];
int i;
int x;
int m;
int cautare_binara(int st,int dr)
{
    if(st>dr)
    return -1;
    else
    {
        m=st+(dr-st)/2;
        if(v[m]>x)
        {
            cautare_binara(st,m-1);
        }
        if(v[m]<x)
        {
            cautare_binara(m+1,dr);
        }
        if(v[m]==x)
        {
            if(v[m+1]>x || x==dr)
            {
                return m;
            }
            else
            {
                cautare_binara(m+1,dr);
            }
        }
    }
}
int cautare_binara2(int st,int dr)
{
    if(st>dr)
    return -1;
    else
    {
        m=st+(dr-st)/2;
        if(v[m]<x)
        {
            cautare_binara2(m+1,dr);
        }
        else
        {
            if(m==st)
            {
                return st;
            }
            else
            {
                if(v[m-1]<x)
                {
                    return m;
                }
                else
                {
                    return cautare_binara2(st,m-1);
                }
            }
        }
    }
}
int cautare_binara1(int st,int dr)
{
    if(st>dr)
    return -1;
    else
    {
        if(v[m]>x)
        {
            return cautare_binara1(st,m-1);
        }
        else
        {
            if(m==dr)
            {
                return dr;
            }
            else
            {
                if(v[m+1]==x)
                {
                    return cautare_binara1(m+1,dr);
                }
                else
                {
                    return m;
                }
            }
        }
    }
}
int main()
{
    f>>n>>x;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
    }
    g<<cautare_binara(1,n)<<"\n";
    g<<cautare_binara1(1,n)<<"\n";
    g<<cautare_binara2(1,n);
    return 0;
}