Cod sursa(job #991040)

Utilizator paul_danutDandelion paul_danut Data 29 august 2013 15:58:03
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

int main()
{
    int z[100001],*p,i,j,val,n,m,x,*ind;
    f>>n;
    for(i=1;i<=n;i++)
        f>>z[i];
    f>>m;
    for(i=1;i<=m;i++)
        {
            f>>j>>val;
            if(j==0)
               {ind=upper_bound(z+1,z+n+1,val);
               if(*(ind-1)==val)
                  g<<ind-z-1<<'\n';
               else
                  g<<-1;}
            else
               if(j==1)
                  {ind=upper_bound(z+1,z+n+1,val);
                  if(ind-z>1&&*(ind-1)==val)
                     g<<ind-z-1<<'\n';
                  else
                     g<<ind-z;}
               else
                   if(j==2)
                      {ind=lower_bound(z+1,z+n+1,val);
                      if(*ind==val)
                      g<<ind-z;}
        }
    f.close();
    g.close();
    return 0;
}