Cod sursa(job #920134)

Utilizator BodiIgna Bogdan Bodi Data 20 martie 2013 08:27:59
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[2][2000001];
int n,m,x,y,i,k;
int main()
{
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        if(x!=y)k=0;
        if(k==0){a[0][x]=i;a[1][x]=i;k=1;}      //{b[x]=i;a[x]=i;k=1;}
            if(k==1)a[1][x]=i;
        y=x;
    }
    fin>>m;
    for(i=1;i<=m;i++)
    {
        fin>>y>>x;
        if(y==0)
        {
            if(a[1][x]>0)fout<<a[1][x];
                else fout<<-1;
            fout<<"\n";
        }
        if(y==1)
        {
            while(a[1][x]==0)x--;
            fout<<a[1][x];
            fout<<"\n";
        }
        if(y==2)
        {
            while(a[0][x]==0)x++;
            fout<<a[0][x];
            fout<<"\n";
        }
    }
    fin.close();
    fout.close();
    return 0;
}