Cod sursa(job #769844)

Utilizator Ionut228Ionut Calofir Ionut228 Data 21 iulie 2012 00:27:09
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,k,v[100010],x,a,j,i,s,m;
int main ()
{
	f>>n;
	for(i=1;i<=n;i++)
		f>>v[i];
	f>>k;
	for(j=1;j<=k;j++)
	{
		f>>a;
		f>>x;
		if(a==0)
		{
			i=1;
			s=n;
			while(i<=s)
			{
				m=(i+s)/2;
				if(v[m]<=x)
					i=m+1;
				else
					s=m-1;
			}
			if(v[m]>x)
				m--;
			if(v[m]==x)
				g<<m<<"\n";
			else
				g<<"-1"<<"\n";
		}
		if(a==1)
		{
			i=1;
			s=n;
			while(i<=s)
			{
				m=(i+s)/2;
				if(v[m]<=x)
					i=m+1;
				else
					s=m-1;
			}
			if(v[m]>x)
				m--;
			g<<m<<"\n";
		}
		if(a==2)
		{
			i=1;
			s=n;
			while(i<=s)
			{
				m=(i+s)/2;
				if(v[m]<x)
					i=m+1;
				else
					s=m-1;
			}
			if(v[m]<x)
				m++;
			g<<m<<"\n";
		}
	}
	f.close();g.close();
	return 0;
}