Cod sursa(job #913322)

Utilizator alexandru70Ungurianu Alexandru alexandru70 Data 13 martie 2013 11:54:34
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("cautbin.in"); ofstream out ("cautbin.out");
int n;
unsigned int* ar;
int binSearch0(int v);
int binSearch1(int v);
int binSearch2(int v);

int main()
{
  in >> n;
  ar = new unsigned int[n];
  for(int i = 0; i < n; i++)
  {
    in >> ar[i];
  }
  int k;
  in >> k;
  while(k--)
  {
    int t,val;
    in >> t >> val;
    int x;
    switch(t)
    {
      case 0:x=upper_bound(ar,ar+n,val)-ar;if(x>=0&&x<n&&ar[x]==val)out << x << '\n';else out << -1 << '\n';break;
      case 1:out << lower_bound(ar,ar+n,val+1)-ar<<'\n';break;
      case 2:out << upper_bound(ar,ar+n,val-1)-ar+1 << '\n';break;
    }
  }
  return 0;
}