Cod sursa(job #344643)

Utilizator sunshine16mara beatrice sunshine16 Data 31 august 2009 01:02:26
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream.h>
void main()
{

long n,m,inc,sf,mij,pb,x,sir[100000],gasit;
cin>>n;cin>>m;
for(x=1;x<=n;x++)
  cin>>sir[x];
while(m!=0)
 { cin>>pb; cin>>x;
   inc=1; sf=n; mij=(inc+sf)/2; gasit=0;
   if(pb==0)
    { while((inc<=sf)&&(gasit==0))
       { if(x==sir[mij])
          { gasit=1;
            cout<<mij;
          }
         else if(x<=sir[mij]) sf=mij-1;
                else inc=mij+1;
        }
       if (gasit==0) cout<<"-1";
      }
    if (pb==1)
     { while((inc<=sf)&&(gasit==0))
        { if(x==sir[mij])
           { gasit=1;
             cout<<mij;
           }
          else if(sir[mij-1]<x)
                { cout<<mij-1;
                  gasit==1;
                }
               else sf=mij-1;
         }
      }
     if(pb==2)
      { while((inc<=sf)&&(gasit==0))
         { if((sir[mij]>x)&&(sir[mij-1]<x))
            {cout<<mij;
             gasit=1;
            }
           else sf=mij-1;

          }
       }
      m--;
      }
      return 0;
      }