Cod sursa(job #1425874)

Utilizator denisucu02diaconescu denis denisucu02 Data 28 aprilie 2015 12:18:37
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream>
using namespace std;
ifstream f("cautbin.in"); ofstream g("cautbin.out");
int v[100010];
int main ()
{   int n,q,i,t,x,st,dr,m;
    f>>n;
    for(i=1;i<=n;i++) f>>v[i];
    f>>q;
    for(i=1;i<=q;i++)
    {   f>>t>>x;
        if(t==0)
        {   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) g<<dr<<"\n"; else g<<"-1"<<"\n";
        }
        if(t==1)
        {   st=1; dr=n;
            while(st<=dr)
            {   m=(st+dr)/2;
                if(v[m]<=x) st=m+1; else dr=m-1;
            }
            g<<dr<<"\n";
        }
        if(t==2)
        {   st=1; dr=n;
            while(st<=dr)
            {   m=(st+dr)/2;
                if(v[m]<x) st=m+1; else dr=m-1;
            }
            g<<st<<"\n";
        }
    }
    g.close(); return 0;
}