Cod sursa(job #919447)

Utilizator BodiIgna Bogdan Bodi Data 19 martie 2013 17:44:06
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
short int a[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[x]=i*10+i;k=1;}      //{b[x]=i;a[x]=i;k=1;}
            if(k==1)a[x]/=10*10+i;
        y=x;
    }
    fin>>m;
    for(i=1;i<=m;i++)
    {
        fin>>y>>x;
        if(y==0)
        {
            if(a[x]>0)fout<<a[x]/10;
                else fout<<-1;
            fout<<"\n";
        }
        if(y==1)
        {
            while(a[x]==0)x--;
            fout<<a[x]/10;
            fout<<"\n";
        }
        if(y==2)
        {
            while(a[x]==0)x++;
            fout<<a[x]%10;
            fout<<"\n";
        }
    }
    fin.close();
    fout.close();
    return 0;
}