Cod sursa(job #1972146)

Utilizator vlad_cvlad carasel vlad_c Data 22 aprilie 2017 10:21:57
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.4 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int v[1000001];
int main()
{
    long long n,i,m,tip,x,j,c,g=0;
    in>>n;
    for (i=1;i<=n;i++)
    {
        in>>v[i];
    }

    in>>m;
    for (i=1;i<=m;i++)
    {
        in>>tip>>x;
        if (tip==0)
        {
           c=upper_bound(v+1,v+n+1,x)-v-1;
           //for (j=1;j<=n;j++)
           //{
               //if (v[j]==x)
               //{
                   //c=j;
                   //g++;
               //}
           //}
           //if (g==0)
               //out<<-1<<'\n';
           //else
               //out<<c<<'\n';
           if (c>=1 && c<=n && v[c]==x)
               out<<c<<'\n';
           else
               out<<"-1"<<'\n';
        }
        //g=0;
        if (tip==1)
        {
            //for (j=1;j<=n;j++)
            //{
               //if (v[j]<=x)
               //{
                   //c=j;
               //}
            //}
            c=upper_bound(v+1,v+n+1,x)-v-1;
            out<<c<<'\n';
        }
        if (tip==2)
        {
           //for (j=n;j>=1;j--)
           //{
               //if (v[j]>=x)
               //{
                   //c=j;
               //}
          // }
           c=lower_bound(v+1,v+n+1,x)-v;
           out<<c<<'\n';
        }
    }
    return 0;
}