Pagini recente » Monitorul de evaluare | Cod sursa (job #1248635) | Cod sursa (job #1703912) | Cod sursa (job #1708640) | Cod sursa (job #2270833)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n, A[100001],q, Q, x, y;
int main()
{
in >> n;
for(int i = 1;i <= n;i++)
in >> A[i];
in >> q;
for(int i = 1;i <= q;i++)
{
in >> Q >> x;
if(Q == 0)
{
y = upper_bound(A + 1,A + n + 1,x) - A - 1;
if(y <= n && y >= 1 && A[y] == x) out << y << '\n';
else out << -1 << '\n';
}
else if(Q == 1) out << lower_bound(A + 1,A + n + 1,y + 1) - A - 1 << '\n';
else out << lower_bound(A + 1,A + n + 1,y - 1) - A << '\n';
}
return 0;
}