Cod sursa(job #1769445)

Utilizator Mihaibv13Mihai Stoian Mihaibv13 Data 2 octombrie 2016 15:48:17
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
int x;
int v[100100];


int main()
{
    int n;
    int m;
    int xx;
    FILE *f=fopen("cautbin.in","r");
    FILE *g=fopen("cautbin.out","w");
    fscanf(f,"%d",&n);
    for(int i=1; i<=n; i++)
    {
        fscanf(f,"%d",&v[i]);

    }

    sort(v+1,v+n+1);




    int y;

    fscanf(f,"%d",&m);
    int p;
    for(int ii=1; ii<=m; ii++)
    {

        fscanf(f,"%d",&p);
        fscanf(f,"%d",&x);
        if(p==0)
        {
            y=upper_bound(v+1,v+n+1,x)-v-1;

            if(y<=n && y>=1 && v[y]==x)
                fprintf(g,"%d\n",y);
            else
                fprintf(g,"-1\n");

        }
        else if(p==1)
        {


            y=lower_bound(v+1,v+n+1,x+1)-v-1;
            fprintf(g,"%d\n",y);


        }
        else
            {y=upper_bound(v+1,v+n+1,x-1)-v; fprintf(g,"%d\n",y); }


    }




    return 0;
}