Cod sursa(job #1972750)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 23 aprilie 2017 16:31:40
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,i,a,b,m,poz1,v[100001];
int main()
{
   f>>n;
   for(i=1;i<=n;i++)f>>v[i];
   sort(v+1,v+n+1);

   f>>m;
   for(i=1;i<=m;i++)
   {
       f>>a>>b;
       if(a==0)
       {
           poz1=upper_bound(v+1,v+n+1,b)-v-1;
           if(v[poz1]==b&&poz1>=1&&poz1<=n)g<<poz1<<'\n';
           else g<<-1<<'\n';
       }
       else if(a==1)
       {
           poz1=lower_bound(v+1,v+n+1,b+1)-v-1;
           g<<poz1<<'\n';
       }
       else if(a==2)
       {
           poz1=upper_bound(v+1,v+n+1,b-1)-v-1;
           g<<poz1+1<<'\n';
       }
   }
    return 0;
}