Cod sursa(job #2428330)

Utilizator OctavVitruviusOctavian Gheorghiu OctavVitruvius Data 4 iunie 2019 19:04:07
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;

ifstream in ("cautbin.in");
ofstream out("cautbin.out");

int main()
{
    int n,m,v[10000],i,poz=0,x,tip,s,d,mij;
    in>>n;

    for(i=1;i<=n;i++)
        in>>v[i];

    in>>m;
    for(tip=1;tip<=m;tip++)
        in>>tip>>x;

    for(i=1<<20;i>0;i/=2)
    {
        if(poz+i<=n&&v[poz+i]<=x)
            poz=poz+i;
    }

    if(v[poz]==x)
        out<<poz<<endl;
    else
        out<<-1<<endl;


    s=1;d=n;
    while(s<d)
    {
        mij=(s+d)/2;
        if(v[mij]<=x)
            s=mij+1;
        else
        d=mij;
    }
    mij = (d + s) / 2;
    if (v[mij] > x)
       mij--;
    out<<mij<<endl;

    s=1;d=n;
    while(s<d)
    {
        mij=(s+d)/2;
        if(v[mij]<x)
            s=mij+1;
        else
            d=mij;
    }
     mij = (d + s) / 2;
    if (v[mij] < x)
       mij++;
    out<<mij;
    return 0;
}