Cod sursa(job #537564)

Utilizator sanda-mariaPatras Sanda sanda-maria Data 20 februarie 2011 17:02:08
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include<iostream.h>
#include<fstream.h>
int s,d,n,m,a[1000],e,max,p,t,maxim,r;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int cautare()
{
    s=1;
    d=n;
    e=false; 
    while(s<=d && !e)
    {
       m=((s+d)/2);
       if(p=a[m]) 
          e=true;
       else
           if(p<a[m])
              d=m-1;
              else
                s=m+1;
    }
    m++;
    g<<m<<"\n";
}
int cautare1()
{
    s=1;
    d=n;
    e=false; 
    while(s<=d && !e)
    {
       max=((s+d)/2);
       if(p=a[max]) 
          e=true;
       else
           if(p<a[max])
              d=max-1;
              else
                s=max+1;
    }
    max++;
    g<<max<<"\n";
}
int cautare2()
{
    s=1;
    d=n;
    e=false; 
    while(s<=d && !e)
    {
       maxim=((s+d)/2);
       if(p=a[maxim]) 
          e=true;
       else
           if(p<a[maxim])
              d=maxim-1;
              else
                s=maxim+1;
    }
    maxim--;
    g<<maxim<<"\n";
}
int main()
{
    int i,k,j;
    f>>n;
    for(i=1;i<=n;i++)
    f>>a[i];
    f>>k;
    for(i=1;i<=k;i++)
    {
      f>>t;
      f>>r;
      if (t==0)  cautare1();
    else if (t==1)
      cautare();
    else if(t==2)
        cautare2();
      
    m=0;
    max=0;}
    f.close();
    g.close();
    return 0;
}