Cod sursa(job #907853)

Utilizator VladMSBonta vlad valentin VladMS Data 8 martie 2013 13:38:53
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int i,j,n,cod,m,rez,x;
vector <int> a;
vector <int>::iterator ii;
int main()
{
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>x;
        a.push_back(x);
    }
    fin>>m;
    for(i=1;i<=m;++i)
    {
        fin>>cod>>x;
        if(cod==0)
        {
            ii=upper_bound(a.begin(),a.end(),x);
            if(a[ii-a.begin()-1]==x)
                fout<<ii-a.begin()<<'\n';
            else
                fout<<-1<<'\n';
        }
        else
        if(cod==1)
        {
            ii=upper_bound(a.begin(),a.end(),x);
            fout<<ii-a.begin()<<'\n';
        }
        else
        if(cod==2)
        {
            ii=lower_bound(a.begin(),a.end(),x);
                fout<<ii-a.begin()+1<<'\n';
        }
    }
    return 0;
}