Pagini recente » Cod sursa (job #1165701) | Cod sursa (job #554828) | Cod sursa (job #516357) | Cod sursa (job #1772826) | Cod sursa (job #2673878)
#include <bits/stdc++.h>
using namespace std;
int binarySearch(int n, const vector<int> &v, int x) {
int le = 0, ri = n - 1;
while(le < ri) {
int mid = (le + ri) / 2;
if(v[mid] <= x)
le = mid + 1;
else
ri = mid;
}
if(v[le] > x)
le --;
return le;
}
int main() {
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n;
in >> n;
vector<int> v(n, 0);
for(int index = 0; index < n; index ++)
in >> v[index];
int m;
in >> m;
while(m --) {
int op, x;
in >> op >> x;
int result = binarySearch(n, v, x);
if(op == 0) {
if(result < 0 || v[result] != x)
out << -1 << "\n";
else
out << result + 1 << "\n";
} else if(op == 1) {
out << result + 1 << "\n";
} else if(op == 2) {
result = binarySearch(n, v, x - 1);
result ++;
out << result + 1 << "\n";
}
}
return 0;
}