Cod sursa(job #918335)

Utilizator TheFFOFratila Florin Ovidiu TheFFO Data 18 martie 2013 20:07:48
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*f=fopen("cautbin.in","r");
FILE*g=fopen("cautbin.out","w");
int sir[100010];
int main()
{
    int N,M,t,x;
    int i,y;
    fscanf(f,"%d",&N);
    for(i=1;i<=N;++i)
        fscanf(f,"%d",&sir[i]);
    fscanf(f,"%d",&M);
    for(i=1;i<=M;++i)
    {
        fscanf(f,"%d%d",&t,&x);
        int y;
        switch(t)
        {
            case 0:
            y=upper_bound(sir+1,sir+N+1,x)-sir-1;
            if(sir[y]==x)
                fprintf(g,"%d\n",y);
            else
                fprintf(g,"-1\n");
            break;
            case 1:
            fprintf(g,"%d\n",lower_bound(sir+1,sir+N+1,x+1)-sir-1);
            break;
            case 2:
            fprintf(g,"%d\n",upper_bound(sir+1,sir+N+1,x-1)-sir);
            break;
        }
    }
    return 0;
}