Cod sursa(job #1428858)

Utilizator zacuscaAlex Iordache zacusca Data 5 mai 2015 10:47:54
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f2("bac.txt");
vector <int>v2;
int n2,a,b;


class prob1
{
private:
    int bin_search(int n2);
    void citire();
public:
    void rez1(vector<int>&v2);
};
void prob1::citire()
{
    f2>>n2;
    for(int i=1; i<=n2; i++)
    {
        int x;
        f2>>x;
        v2.push_back(x);
    }
    f2>>a>>b;
    if(a>b)swap(a,b);
}
int prob1::bin_search(int n2)
{
    size_t st=0,dr=n2-1,mij;
    sort(v2.begin(),v2.end());
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(v2[mij]>=a&&v2[mij]<=b)return mij;
        else if(v2[mij]>b)dr=mij-1;
        else st=mij+1;
    }
    return -1;
}
void prob1::rez1(vector<int>&v2)
{
    citire();
    int BestPoz=bin_search(n2);
    vector<int>::iterator fs,ls;
    if(BestPoz>=0)
    {
        fs=v2.begin()+BestPoz;
        for(ls=v2.end()-1; ls>=fs; ls--)
            if(*ls>=a&&*ls<=b)
            {
                cout<<*ls;
                break;
            }
    }
    else cout<<"nu exista";
}

int main()
{
    prob1 ob;
    ob.rez1();
    return 0;
}