Cod sursa(job #2834849)

Utilizator Ricardo14Olaru Ricardo Ricardo14 Data 17 ianuarie 2022 19:26:17
Problema Cautare binara Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.28 kb
#include <fstream>
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");

int v[100005];

int main()
{
int n,m,x,mij,cer,st,dr,nr=0;
    fin >> n;
    for(int i=1; i<=n ;i++)
        fin>>v[i];


sort(v+1,v+n+1);

    fin>>m;
    for(int i=1 ;i<=m ;i++)
    {
        fin>>cer>>x;
        if(cer == 0){
 nr=-1;//
    dr=n;
    st=1;

    while(st<=dr)
            {
        mij=(st+dr)/2;
            if(v[mij]<=x) {
        st=mij + 1;
            if(v[mij]==x){
                nr=mij;
                    }
        }
        else
                    dr=mij -1;
    }
    fout<<nr<<'\n';
        }

        if (cer==1){


            nr=0;
            st=1;
            dr=n;
            while(st<=dr)
            {
        mij=(st+dr)/2;
        if(v[mij]<=x) {
        st=mij +1;
        nr=mij;
                }
        else
    dr =mij -1;
            }
    fout<<nr<<'\n';
        }

if (cer == 2)
    {

 st=1;
    dr=n;
    nr=0;

while(st<=dr)
             {
    mij=(st+dr)/2;
        if(v[mij]<x) {
            st=mij+1;
                }
        else
        {
            nr=mij;
    dr=mij-1;
    }
    }
fout<<nr<<endl;
    }

}


    return 0;
}