Cod sursa(job #1426314)

Utilizator PletoPletosu Cosmin-Andrei Pleto Data 29 aprilie 2015 13:52:59
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include<fstream>
#define MAXIM 100010
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int V[MAXIM];
int main ()
{
    int N,M,type,x,st,dr;
    in>>N;
    for(int i=1;i<=N;i++) in>>V[i];
    in>>M;
    for(int i=1;i<=M;i++)
    {
        in>>type>>x;
        switch(type)
        {
            case 0:
            {
                int m;
                st=1; dr=n;
                while(st<=dr)
                {
                    m=(st+dr)/2;
                    if(v[m]<=x) st=m+1; else dr=m-1;
                }
                if(v[dr]==x) out<<dr<<"\n"; else out<<"-1"<<"\n";
                break;
            }
            case 1:
            {
                int m;
                st=1; dr=n;
                while(st<=dr)
                {
                    m=(st+dr)/2;
                    if(v[m]<=x) st=m+1; else dr=m-1;
                }
                out<<dr<<"\n";
                break;
            }
            case 2:
            {
                int m;
                st=1; dr=n;
                while(st<=dr)
                {
                    m=(st+dr)/2;
                    if(v[m]<x) st=m+1; else dr=m-1;
                }
                out<<st<<"\n";
                break;
            }
        }
    }
    out.close();return 0;
}