Cod sursa(job #1839882)

Utilizator igroitaGroita Igor igroita Data 3 ianuarie 2017 16:05:54
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
#include<algorithm>
using namespace std;
 
 ifstream cin("cautbin.in");
 ofstream cout("cautbin.out"); 
int V[100100];
 
int main () {
    int n, m, x, y, i, t;
 
    cin>>n;
 
    for (i = 1; i <= n; ++ i)
        cin>>V[i];
 
    sort(V + 1, V + n + 1);
 
    cin>>m;
     
    for(i=1; i <= m; ++ i) {
        cin>>t>>y;
 
        if(t== 0) {
            x = upper_bound(V + 1, V + n + 1, y) - V - 1;
            if (x <= n && x >= 1 && V[x] == y)
                cout<<x<<"\n";
            else cout<<"-1\n";
        } else if (t == 1) {
            x = lower_bound(V + 1, V + n + 1, y + 1)-V-1;
            cout<<x<<"\n";
        } else {
            x = upper_bound(V + 1, V + n + 1, y - 1) - V;
            cout<<x<<"\n";
        }
    }
}