Cod sursa(job #1747887)

Utilizator horiacoolNedelcu Horia Alexandru horiacool Data 25 august 2016 18:48:31
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N,v[500000];

int main()
{
    int i,M,a,b,poz;
    poz=-1;
    f>>N;
    for(i=1;i<=N;i++)
        f>>v[i];

    f>>M;
    for(i=1;i<=M;i++)
    {
        f>>a>>b;

        int mij;
        int st=0;
        int dr=N;
        int ok=0;

        while((ok==0)&&(st<=dr))
        {
            mij=st+(dr-st)/2;

            if(v[mij]<b)
                st=mij+1;

            if(v[mij]==b)
                ok=1;

            if(v[mij]>b)
                dr=mij-1;

        }
        if(ok==1)
          {
            while(v[mij+1]==b)
             mij=mij+1;
            poz=mij;
          }
        else
            poz=-1;



      if(a==0)
        g<<poz<<'\n';

      if((a!=0)&&(poz!=-1))
        g<<poz<<'\n';

      if((a==1)&&(poz==-1))
        g<<dr<<'\n';

      if((a==2)&&(poz==-1))
        g<<st<<'\n';

    }


    return 0;
}