Cod sursa(job #2236290)

Utilizator cezarzbughinCezar Zbughin cezarzbughin Data 29 august 2018 00:36:34
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> v;


int n,m;
int main()
{
    int x;
    int y;

    f>>n;
    for(; n; n--)
    {

        f>>x;
        v.push_back(x);
    }

    f>>m;

    for(; m; m--)
    {
        f>>x>>y;
        if(x==0)
        {
            auto it=upper_bound(v.begin(),v.end(),y);
            if(*(it-1)==y)g<<distance(v.begin(),it-1)+1<<'\n';
            else g<<"-1\n";
        }
        if(x==1)
        {
            auto it=lower_bound(v.begin(),v.end(),y);
            if(*it==y)g<<distance(v.begin(),upper_bound(v.begin(),v.end(),y)-1)+1<<'\n';
            else g<<distance(v.begin(),it-1)+1<<'\n';

        }
        if(x==2)
        {
            g<<distance(v.begin(),lower_bound(v.begin(),v.end(),y))+1<<'\n';
        }



    }



}