Cod sursa(job #2484663)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 31 octombrie 2019 12:58:07
Problema Cautare binara Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include<fstream>
using namespace std;

int main()
{
	int n,v[100001],m,contor,x,in,sf,mij,poz;
	ifstream f("cautbin.in");
	ofstream g("cautbin.out");
	f>>n;
	for(int i=1; i<=n; i++)
		f>>v[i];
	f>>m;
	while(m--)
	{
		f>>contor>>x;
		in = 1;
		sf = n;
		poz=0;
		if(contor==0)
		{
			while(sf>=in)
			{
				mij=(in+sf)/2;
				if(v[mij]<=x)
				{
					poz=mij;
					in=mij+1;
				}
				else
					sf=mij-1;
			}
			if(v[poz]==x)
				g<<poz<<"\n";
			else
				g<<"-1"<<"\n";
		}
		if(contor==1)
		{
			while(sf>=in)
			{
				mij=(in+sf)/2;
				if(v[mij]<=x)
				{
					poz=mij;
					in=mij+1;
				}
				else
                    sf=mij-1;
			}
            g<<poz<<"\n";
		}
    if(contor==2)
    {
        while(sf>=in){
            mij=(in+sf)/2;
            if(v[mij]>=x)
            {
                poz=mij;
                sf=mij-1;
            }
            else
            in=mij+1;
        }
        g<<poz<<"\n";
    }
	}
	return 0;
}