Cod sursa(job #696188)

Utilizator bacilaBacila Emilian bacila Data 28 februarie 2012 17:31:07
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <algorithm>
#include <fstream>
#include <vector>
#define pb(x) push_back(x)
using namespace std;
int n,m,i,x,y;
int main ()
{ifstream f("cautbin.in");
 ofstream g("cautbin.out");
 vector<int>::iterator of;
 vector<int> v;
f>>n;
for(i=1;i<=n;i++)
{f>>x;
v.pb(x);}
f>>m;
while(m)
{f>>x>>y;
if(x>1)
{of=upper_bound(v.begin(),v.end(),y-1);
g<<int(of+1-v.begin());}
else
{of=lower_bound(v.begin(),v.end(),y+1);
if(x==1)
g<<int(of-v.begin());
else
if(*(of-1)==y)
g<<int(of-v.begin());
else
g<<-1;

    }g<<'\n';
        m--;}
 f.close(); g.close();
return 0;
}