Cod sursa(job #588793)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 9 mai 2011 17:09:59
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<fstream.h>
#define N 100001
long n,m,i,v[N],x,y,s,l;
int main()
{ifstream f("cautbin.in");
ofstream g("cautbin.out");
f>>n;
for(i=1;i<=n;i++)
       f>>v[i];
f>>m;
for(l=1;l<=n;l<<=1);
while(m--)
       {f>>x>>y;
       s=l;
       for(i=0;s;s>>=1)
       if(i+s<=n&&v[i+s]<=y)
              i+=s;
       if(x==0)
              if(v[i]==y)
                      g<<i<<"\n";
              else
                      g<<"-1\n";
       else
              if(x==1)
                      if(v[i]==y)
                              {while(v[i]==y)
                                      i++;
                              g<<i-1<<"\n";}
                      else
                              g<<i<<"\n";
              else
                      {while(v[i]==y)
                               i--;
                      g<<i+1<<"\n";}}
f.close();
g.close();
return 0;}