Cod sursa(job #1497842)

Utilizator mihalut.filipMihalut Filip mihalut.filip Data 7 octombrie 2015 16:36:50
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
int i,n,v[100],gasit,mij,pi,pj,x,m,intr;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>v[i];
    f>>m;
    while(m)
    {
        gasit=0;
        f>>intr>>x;
        pi=1;
        pj=n;
        while(pi<=pj&&gasit==0)
        {
            mij=(pi+pj)/2;
            if(v[mij]==x)
                gasit=1;
            else
            {
                if(v[mij]<x)
                    pi=mij+1;
                else
                    pj=mij-1;
            }
        }
        if(intr==0&&gasit==1)
        {
            while(v[mij]==v[mij+1])
                mij++;
            g<<mij<<endl;
        }
        else if(intr==0&&gasit==0)
            g<<-1<<endl;
        else if(intr==1&&gasit==1)
        {
            while(v[mij]==v[mij+1])
                mij++;
            g<<mij<<endl;
        }
        else if(intr==1&&gasit==0)
            g<<mij+1<<endl;
        else if(intr==2&&gasit==1)
        {
            while(v[mij]==v[mij-1])
                mij--;
            g<<mij<<endl;
        }
        else
            g<<mij;
        m--;
    }
    return 0;
}