Cod sursa(job #1886711)

Utilizator alexionpopescuPopescu Ion Alexandru alexionpopescu Data 21 februarie 2017 08:54:19
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,x[100001],i,t,y,m,w;
int main(){
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>x[i];
    sort(x+1,x+n+1);
    fin>>m;
    for(i=1;i<=m;i++){
        fin>>t>>y;
        if(t==0){
        w=upper_bound(x+1,x+n+1,y)-x-1;
        if(w<=n&&w>=1&&x[w]==y)
            fout<<w<<'\n';
        else
            fout<<-1<<'\n';}
        else
        if(t==1){
            w=lower_bound(x+1,x+n+1,y+1)-x-1;
            fout<<w<<'\n';
        }
        else{
            w=upper_bound(x+1,x+n+1,y-1)-x;
            fout<<w<<'\n';
        }
    }
    fin.close();
    fout.close();
    return 0;
}