Cod sursa(job #1032672)

Utilizator L.DanielLungu Daniel L.Daniel Data 15 noiembrie 2013 22:30:39
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<fstream>
using namespace std;
int main()
{
	fstream g("cautbin.out", ios::out);
	fstream f("cautbin.in", ios::in);
	int n, i, m, k, x, j, dr, st, mij, v[1000000];
	f >> n;
	for (i = 1; i <= n; i++)
		f >> v[i];
	f >> m;
	for (i = 1; i <= m; i++)
	{
		f >> k >> x;
		if (k == 0)
		{
			st = 1;
			dr = n;
			while (st <= dr)
			{
				mij = (st + dr) / 2;
				if (x >= v[mij]) st = mij + 1;
				else dr = mij - 1;
			}
			if (v[dr] ==x)g << dr << endl;
			else g << -1 << endl;
		}
		if (k == 1)
		{
			st = 1;
			dr = n;
			while (st <= dr)
			{
				mij = (st + dr) / 2;
				if (x >= v[mij]) st = mij + 1;
				else dr = mij - 1;
			}
			g << dr << endl;
		}
		if (k == 2)
		{
			st = 1;
			dr = n;
			while (st <= dr)
			{
				mij = (st + dr) / 2;
				if (x > v[mij]) st = mij + 1;
				else dr = mij - 1;
			}
			g << st << endl;
		}
	}
	return 0;
}