Cod sursa(job #1386131)

Utilizator Tomi98Osvath Tamas Tomi98 Data 12 martie 2015 18:32:41
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <fstream>
using namespace std;
int a,n,m,x,j,i,v[100001],mij;
bool ok;
int main()
{
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    f>>n;
    for (i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    for (i=1;i<=m;i++)
    {
        f>>a>>x;
        mij=n/2;ok=0;
        if (a==0)
        {
            if (x>=mij) {for (j=n;j>=mij;j--)
                            if (v[j]==x) {ok=1;g<<j<<'\n';break;}}
            if (x<mij) {for (j=mij-1;j>=1;j--)
                            if (v[j]==x) {ok=1;g<<j<<'\n';break;}}
            if (ok==0) g<<-1<<'\n';
        }
        if (a==1)
        {
            if (x>=mij) {for (j=n;j>=mij;j--)
                            if (v[j]<=x) {ok=1;g<<j<<'\n';break;}}
            if (x<mij) {for (j=mij-1;j>=1;j--)
                            if (v[j]<=x) {ok=1;g<<j<<'\n';break;}}
        }
        if (a==2)
        {
            if (x>=mij) {for (j=mij;j<=n;j++)
                            if (v[j]>=x) {ok=1;g<<j<<'\n';break;}}
            if (x<mij) {for (j=1;j<mij;j++)
                            if (v[j]>=x) {ok=1;g<<j<<'\n';break;}}
        }
    }

    return 0;
}