Pagini recente » Cod sursa (job #266711) | Cod sursa (job #807732) | Cod sursa (job #885643) | Cod sursa (job #1023512) | Cod sursa (job #1156963)
#include <iostream>
#include <fstream>
using namespace std;
void f1(int x);
void f2(int x);
void f3(int x);
int n, v[100000];
long long p;
ofstream out("cautbin.out");
int main(){
int m, q, cit;
ifstream in("cautbin.in");
in >> n;
for (int i = 0; i < n; i++)
in >> v[i];
in >> m;
for (int k = 1; k <= m; k++){
in >> q >> cit;
if (q == 0)
f1(cit);
else if (q == 1)
f2(cit);
else
f3(cit);
}
}
void f1(int x){
int b = 0;
int p = 1 << 16;
while (p != 0){
if (b + p<n&&v[b + p] <= x)
b += p;
p /= 2;
}
if (v[b]<x)
out << -1 << "\n";
else
out << b + 1 << "\n";
}
void f2(int x){
int b = 0;
int p = 1 << 16;
while (p != 0){
if (b + p<n&&v[b + p] <= x)
b += p;
p /= 2;
}
out << b + 1 << "\n";
}
void f3(int x){
int b = 0;
int p = 1 << 16;
while (p != 0){
if (b + p<n&&v[b + p] < x)
b += p;
p /= 2;
}
out << b + 2 << "\n";
}