Pagini recente » Cod sursa (job #3184779) | Cod sursa (job #1757556) | Cod sursa (job #309709) | Cod sursa (job #1230594) | Cod sursa (job #2569197)
#include <bits/stdc++.h>
using namespace std;
string problema = "cautbin";
ifstream f(problema + ".in");
ofstream g(problema + ".out");
#ifdef INFOARENA
#define cin f
#define cout g
#endif
int n, m, i, a, b, nCon;
vector<int> v;
int main()
{
cin >> n;
for (i = 1; i <= n; i++)
{
cin >> a;
v.push_back(a);
}
cin >> m;
for (i = 1; i <= m; i++)
{
cin >> a >> b;
auto ub = upper_bound(v.begin(), v.end(), b);
auto lb = lower_bound(v.begin(), v.end(), b);
switch (a)
{
case 0:
if (*(ub - 1) != b)
cout << -1;
else
cout << distance(v.begin(), ub);
break;
case 1:
cout << distance(v.begin(), ub);
break;
case 2:
if (*lb != b)
cout << -1;
else
cout << distance(v.begin(), lb) + 1;
break;
}
cout << "\n";
}
return 0;
}