Cod sursa(job #1342321)

Utilizator cristy801Cristi Chirtos cristy801 Data 13 februarie 2015 20:42:19
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>

using namespace std;
int v[100000],n,i,intr;
int caut(int x,int intr)
{
    int mij;
    mij=(n+1)/2;
    if(intr==0||intr==1)
    {
        if(x>=v[mij])
        {
            for(i=n;i>=mij;--i)
            {if(v[i]==x)
                mij=i;}
        }
        else
        {
            for(i=mij;i>=1;--i)
            {
                if(v[i]==x)
                    mij=i;
            }
        }
        if(v[mij]==x)
            return mij;
        else
            return -1;
    }
    else
    {
        if(x>v[mij])
        {
            for(i=mij;i<=n;++i)
            {
                if(v[i]>=x)
                    return i;
            }
        }
        else
        {
            for(i=1;i<=mij;++i)
            {
                if(v[i]>=x)
                    return i;
            }
        }
    }
}
int main()
{
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    int i,x,m,j,intr,mij;
    f>>n;
    for(i=1;i<=n;++i)
        f>>v[i];
    f>>m;
    for(j=1;j<=m;++j)
    {
        f>>intr>>x;
        g<<caut(x,intr)<<'\n';
    }
    return 0;
}