Pagini recente » Cod sursa (job #2968051) | Profil Galax27 | Profil xandru | Diferente pentru onis-2015/solutii-runda-1 intre reviziile 57 si 56 | Cod sursa (job #2074967)
#include <iostream>
#include <fstream>
using namespace std;
int valslen;
int vals[100041];
int binSearch(int n, int t)
{
int pos = -1, mid;
int lt = 1, rt = valslen;
while(lt <= rt){
mid = (lt + rt) / 2;
if(vals[mid] <= n){
if((vals[mid] == n && t == 0) || t == 1){
pos = mid;
}
lt = mid + 1;
}else{
rt = mid - 1;
}
}
return pos;
}
int binSearcho(int n)
{
int pos = -1, mid;
int lt = 1, rt = valslen;
while(lt <= rt){
mid = (lt + rt) / 2;
if(vals[mid] >= n){
pos = mid;
rt = mid - 1;
}else{
lt = mid + 1;
}
}
return pos;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int m, t, v;
fin >> valslen;
for(int i = 1; i <= valslen; i++){
fin >> vals[i];
}
fin >> m;
for(int i = 1; i <= m; i++){
fin >> t >> v;
if(t == 2){
fout << binSearcho(v);
}else{
fout << binSearch(v, t);
}
fout << "\n";
}
return 0;
}