Cod sursa(job #854576)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 13 ianuarie 2013 19:13:11
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,i,v[100001],z,p,u,q,x;
int main(){
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
     f>>m;
     for(i=1;i<=m;i++){
         f>>z>>x;
         p=1;
         u=n;q=0;
         if(z==0 || z==1){
             while(p<=u){
                 m=(p+u)/2;
                 if(x>=v[m]){
                    q=m;
                    p=m+1;
                    }
                 else
                 u=m-1;
             }
           if(z==0){
              if(v[q]!=x)
                 g<<-1<<'\n';
              else
                 g<<q<<'\n';
           }
          else
             if(v[q]==x)
                g<<q<<'\n';
                else
                 q<<q-1;
         }
       else{

       while(p<=u){
                 m=(p+u)/2;
                 if(x<=v[m]){
                    q=m;
                    u=m-1;
                    }
                 else
                 p=m+1;
             }
       g<<q<<'\n';

       }



         }

    return 0;





}