Cod sursa(job #1997525)

Utilizator dariastanescuDaria Stanescu dariastanescu Data 4 iulie 2017 17:02:42
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

int n,i,v[100001],p,poz,x,m;
int main()
{
    f>>n;
    for(i=1;i<=n;++i) f>>v[i];
    f>>m;
    for(i=1;i<=m;++i)
    {
        f>>p>>x;
        if(p==0)
        {
            poz=upper_bound(v+1,v+n+1,x)-v-1;
            if( poz<=n && poz>=1 && v[poz]==x) g<<poz<<"\n";
            else g<<"-1"<<"\n";
        }
        if(p==1)
        {
          poz=lower_bound(v+1,v+n+1,x+1)-v-1;
          g<<poz<<"\n";
        }
        else if(p==2)
        {
            poz=upper_bound(v,v+n,x-1)-v;
            g<<poz<<"\n";
        }
    }
}