Cod sursa(job #919429)

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