Cod sursa(job #2199762)

Utilizator PushkinPetolea Cosmin Pushkin Data 28 aprilie 2018 23:39:01
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
vector<int> v;
int main()
{
    int n, c, x, i;
    vector<int>::iterator it;
    f>>n;
    v.resize(n);
    for(i=0;i<n;i++)
        f>>v[i];
    f>>c;
    while(f>>c>>x)switch(c)
    {
    case 0:
        {
            it=upper_bound(v.begin(), v.end(), x);
            it--;
            if(*it==x)
                g<<it-v.begin()+1<<'\n';
            else
                g<<"-1\n";
        }break;
    case 1:
        {
            it=upper_bound(v.begin(), v.end(), x);
            g<<it-v.begin()<<'\n';
        }break;
    case 2:
        {
            it=lower_bound(v.begin(), v.end(), x);
            if(*it!=x)
                it++;
            g<<it-v.begin()+1<<'\n';
        }break;
    }
    f.close();
    g.close();
    return 0;
}