Cod sursa(job #2070134)

Utilizator RaduIonescuRadu Ionescu RaduIonescu Data 19 noiembrie 2017 11:42:58
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int N,i,M,j,Q,v[10000],f,I;
short Z;

int zero (int p)
{
    f=0;
    for (i=0;i<N;i++)
        if (v[i]==p)
        {
            I=i;
            f=1;
        }
        if (f) return I+1;
        if (!f) return -1;
}

int unu (int p)
{   I=-2;
    for (i=0;i<N;i++)
        if (v[i]<=p)
            if (i>=I) I=i;
    return I+1;

}

int doi (int p)
{   I=100001;
    for (i=0;i<N;i++)
        if (v[i]>=p)
            if (i<=I) I=i;
    return I+1;
}

int main()
{
    in>>N;
    for (i=0;i<N;i++) in>>v[i];

    in>>M;

    for (j=1;j<=M;j++)
    {
        in>>Z>>Q;
        if (Z==0)
        {
            out<<zero(Q);
            if (j!=M) out<<"\n";
        }
        if (Z==1)
        {
            out<<unu(Q);
            if (j!=M) out<<"\n";
        }
        if (Z==2)
        {
            out<<doi(Q);
            if (j!=M) out<<"\n";
        }

    }

    return 0;
}