Cod sursa(job #664417)

Utilizator arcansielAlina Bratu arcansiel Data 20 ianuarie 2012 06:00:37
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
using namespace std;

int n,k,m,v[100001],sem,x;

int cautare(int x,int i, int j,int s) {
  if (i==j) {
    if (s==0 && v[i]!=x)
	  return -1;
    return i+1;
	}
  else {
    int mij=(i+j)/2;
	if ((s==0 && v[mij+1]<=x) || (s==1 && v[mij+1]<=x) || (s==2 && v[mij]<x)) 
			return cautare(x,mij+1,j,s);
		else
			return cautare(x,i,mij,s);
	}
}

int main() {
  ifstream f("cautbin.in",ifstream::in);
  ofstream g("cautbin.out",ifstream::out);
  f>>n;
  for (k=0;k<n;k++)
    f>>v[k];
  f>>m;
  for (k=0;k<m;k++){
    f>>sem>>x;
	g<<cautare(x,0,n-1,sem)<<'\n';
  }
  return 0;
}