Cod sursa(job #1342318)

Utilizator cristy801Cristi Chirtos cristy801 Data 13 februarie 2015 20:34:55
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.65 kb
#include <fstream>
#include <iostream>
using namespace std;
int v[100000],n,i,intr;
int caut(int x,int intr)
{
    int mij;
    mij=(n+1)/2;
    if(intr==0)
    {
        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(intr==1)
        {
            if(x>=v[mij])
            {
                for(i=n;i>=mij;--i)
                {if(v[i]<=x)
                    return i;}
            }
            else
            {
                for(i=mij;i>=1;--i)
                {
                    if(v[i]<=x)
                        return i;
                }
            }
        }
        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;cout<<"dadDdsa";}
                }
            }
        }
    }
}
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;
}