Cod sursa(job #1294126)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 16 decembrie 2014 23:44:45
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <algorithm>
#include <vector>
#include <set>
#include <cstdio>
using namespace std;
FILE *f=fopen("cautbin.in","r");
FILE *g=fopen("cautbin.out","w");

vector <int> v;
vector <int> ::iterator it;

int main()
{int i,j,n,m,op,x;
fscanf(f,"%d",&n);
for (i=1;i<=n;i++) {fscanf(f,"%d",&j);
                    v.push_back(j);}
fscanf(f,"%d",&m);
for (i=1;i<=m;i++)
        {fscanf(f,"%d %d",&op,&x);
         if (op==0) {it=upper_bound(v.begin(),v.end(),x);
                     it--;
                     if (*it==x) fprintf(g,"%d\n",it-v.begin()+1);
                            else fprintf(g,"-1\n");
                     }else
         if (op==1) {it=lower_bound(v.begin(),v.end(),x);
                     if (*it!=x) it--;;
                     fprintf(g,"%d\n",it-v.begin()+1);
                     }else
                    {it=upper_bound(v.begin(),v.end(),x);
                     it--;
                     if (*it!=x) it++;
                     fprintf(g,"%d\n",it-v.begin()+1);
                     }


        }
return 0;
}