Pagini recente » Cod sursa (job #1403059) | Cod sursa (job #1829760) | Cod sursa (job #2757086) | Cod sursa (job #2533697) | Cod sursa (job #2569277)
#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;
if(a == 0)
{
int ubd = distance(v.begin(), upper_bound(v.begin(), v.end(), b)) - 1;
cerr << ubd << "\n";
if(ubd >= 0 && ubd < n && v[ubd] == b)
cout << ubd + 1 << "\n";
else
cout << "-1\n";
}
if(a == 1)
{
int lbd = distance(v.begin(), lower_bound(v.begin(), v.end(), b + 1));
cout << lbd << "\n";
}
if(a == 2)
{
int ubd = distance(v.begin(), upper_bound(v.begin(), v.end(), b - 1)) + 1;
cout << ubd << "\n";
}
}
return 0;
}