Cod sursa(job #1769436)

Utilizator Mihaibv13Mihai Stoian Mihaibv13 Data 2 octombrie 2016 15:38:11
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 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]);

      }






   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",y);

       }
       else
        if(p==1)
       {


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


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


   }




    return 0;
}