Cod sursa(job #1292426)

Utilizator comocatepSergiu comocatep Data 14 decembrie 2014 12:44:12
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.65 kb
#include <fstream>
using namespace std;
int v[100010],n,z,x,m,st,dr,i,M;
 
int main()
{
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>M;
    for(i=0;i<M;i++)
        {
            f>>z>>x;
            if(z==0)
                {
                    st=1;
                    dr=n;
                    while(st<dr)
                        {
                            m=(st+dr)/2;
                            if(x>=v[m])
                                st=m+1;
                            else   dr=m;
                        }
                    if (v[st]>x)    st--;
                    if(v[st]==x) g<<st<<'\n';
                        else    g<<-1<<'\n';
                }
            if(z==1)
                {
                    st=1;
                    dr=n;
                    while(st<dr)
                        {
                            m=(st+dr)/2;
                            if(x>=v[m])
                                st=m+1;
                            else   dr=m;
                        }
                    if (v[st]>x)
                        st--;
                    g<<st<<'\n';
                }
            if(z==2)
                {
                    st=1;
                    dr=n;
                    while(st<dr)
                        {
                            m=(st+dr)/2;
                            if(x<=v[m])
                                dr=m;
                            else    st=m+1;
                        }
 
                    g<<st<<'\n';
                }
        }
 
 
    return 0;
}