Cod sursa(job #444678)

Utilizator x.5p1k3Gheorghiu Andrei-Ionut x.5p1k3 Data 21 aprilie 2010 10:57:19
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Tema 10D #1 Marime 0.69 kb
using namespace std; 
#include<fstream>  
const int N=100100; 
int caut(int x,int n,int v[N]) 
{int p=1,u=n,m;     
while(p!=u){m=(p+u)/2;//m=(u-p)/2+p 
if(x<=v[m]) u=m;       
else p=m+1;}    
return p;} 
int main(){ifstream in("cautbin.in");    
ofstream out("cautbin.out");     
int r,n,v[N],i,tip,x,m; 
in>>n;    
for(i=1;i<=n;++i) in>>v[i]; in>>m;   
while(m--){in>>tip>>x;         
r=caut(x,n,v);         
if(tip==0) if(v[r]==x) out<<r<<"\n";          
else out<<"-1\n";       
if(tip==1) if(v[r]<=x) out<<r<<"\n";            
else out<<r-1<<"\n";        
if(tip==2) if(v[r]>=x) out<<r<<"\n";            
else out<<r+1<<"\n";}    
in.close();    
out.close();    
return 0;}