Cod sursa(job #1327412)

Utilizator roxi22Roxi C. roxi22 Data 26 ianuarie 2015 18:23:31
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.36 kb
#include <fstream>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main()
{
    //info arena cautare binara.
    //infoarena.ro/problema/cautbin
    //vezi si www.infoarena/blog/cautare-binara;
    int n,s[100],i,m,x,a,inc,sf,k;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>s[i];
    fin>>k;
    for(i=1;i<=k;i++)
        {fin>>a>>x;
        if(a==0){
            inc=1;
            sf=n;
            while(inc<=sf)
            {m=(inc+sf)/2;
            if(s[m]<=x)
                inc=m+1;
            else
                sf=m-1;
            if(s[m]>x)
                m--;}
            if(s[m]==x)
                fout<<m<<"\n";
            else
                fout<<-1<<"\n";}
        if(a==1){
            inc=1;
            sf=n;
            while(inc<=sf){
                m=(inc+sf)/2;
            if(s[m]<=x)
                inc=m+1;
            else
                sf=m-1;
            if(s[m]>x)
                --m;}
            if(s[m]<=x)
                fout<<m<<"\n";}
        if(a==2){
            inc=1;
            sf=n;
            while(inc<=sf){
                m=(inc+sf)/2;
            if(s[m]<x)
                inc=m+1;
            else
                sf=m-1;
            if(s[m]<x)
                ++m;}
            fout<<m<<"\n";}}






    return 0;
}