Cod sursa(job #2376785)

Utilizator Codrut112Codrut Copas Codrut112 Data 8 martie 2019 17:38:55
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,i,v[100001],j,ok,m,p,x,s,d,t;
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=1;i<=m;i++){
f>>p>>x;
  s=1;d=n;
if(p==0){
while(v[d]!=x and v[s]!=x){
t=s+(d-s)/2;
if(v[t]<x) s=t+1;
if(v[t]>x)  d=t-1;
if(v[t]==x){while(v[t]==x) t++;t--;d=t;s=t;}
}if(v[d]==x)g<<d<<endl;
else g<<-1<<endl;
}if(p==1){while(v[s]<x){
   t=s+(d-s)/2;
   if(v[t]>x) d=t-1;
  if(v[t]<x) s=t+1;
  if(v[t]==x){while(v[t]==x)t++;t--;d=t;s=t;}
}g<<s<<endl;


}if(p==2){while(v[s]<x){
   t=s+(d-s)/2;
   if(v[t]<x) s=t+1;
  if(v[t]>x) d=t-1;
  if(v[t]==x){while(v[t]==x)t--;t++;d=t;s=t;}
}g<<s<<endl;



}

}

}