Cod sursa(job #1772890)

Utilizator i_vlad17Vlad Alecu i_vlad17 Data 7 octombrie 2016 10:11:30
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;
int n,x,m,a[1000000],i,nr;
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");

int x0(int st, int dr, int x)
{
    int poz=-1,j,mij;
    while(st<dr)
    {
        mij=(st+dr)/2;
        if(a[mij]==x)
        {
            for(j=mij; j<=n; j++)
            {
                if(a[j]==x)
                    poz=j;
                else
                    break;
            }
            return poz;
        }
        if(a[mij]<x) st=mij+1;
        else
            dr=mij;
    }
    return poz;
}

int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>a[i];
    f>>m;
    for(i=1; i<=m; i++)
    {
        f>>nr>>x;
        if(nr==0) g<<x0(1,n,x);
    }
    return 0;
}