Cod sursa(job #1342304)

Utilizator cristy801Cristi Chirtos cristy801 Data 13 februarie 2015 19:52:11
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>

using namespace std;
int v[100000],n,i;
int caut(int x)
{
    int mij;
    mij=(n+1)/2;
    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;
}
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;
        if(intr==0)
            g<<caut(x)<<'\n';
        if(intr==1)
        {
            for(i=n;i>=0;--i)
            {
                if(v[i]<=x)
                    {g<<i<<'\n';break;}
            }
        }
        if(intr==2)
        {
            for(i=0;i<=n;++i)
            {
                if(v[i]>=x)
                {
                    g<<i<<'\n';break;
                }
            }
        }
    }
    return 0;
}