Cod sursa(job #1168311)

Utilizator Papusica112Pufosenie Papusica112 Data 7 aprilie 2014 23:17:19
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.29 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
    int n,m,a[100001],i,j,x,y,w,tip;
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    f>>y;
    for(w=1;w<=y;w++)
    {
        f>>tip>>x;
            i=1; j=n; m=n/2;
            int ok=0;
            while(i!=j&&ok==0)
               {
                  m=(i+j)/2;
                  if(x==a[m]) ok=1;
                if(x>a[m])
                i=m+1;
                else
                if(x<a[m])
                j=m-1; }
            if(tip==0)
            {if(a[m]==x)
                {for(j=m;j<=n;j++)
                if(a[j]!=x)break;
                g<<j-1;
                }
            else
                g<<-1;
            g<<'\n';
            }
            else
            if(tip==1)
            {if(a[m]==x)
                {for(j=m;j<=n;j++)
                if(a[j]!=x)break;
                g<<j-1;
                }
                else
            g<<m;
            g<<'\n';}
            else
            {if(a[m]==x)
                {for(j=m;j>=1;j--)
                if(a[j]!=x)break;
                g<<j+1;
                }
                else
            g<<m;
            g<<'\n';}
    }
    return 0;
}