Pagini recente » Cod sursa (job #418960) | Cod sursa (job #1026362) | Cod sursa (job #1286317) | Cod sursa (job #1653693) | Cod sursa (job #3168967)
#include <fstream>
#include <algorithm>
#include <vector>
std::ifstream cin("cautbin.in");
std::ofstream cout("cautbin.out");
std::vector<int> v;
int n, m;
void citire()
{
cin >> n;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
v.push_back(x);
}
}
void solve()
{
cin >> m;
for (int i = 0; i < m; i++)
{
int c, x;
cin >> c >> x;
if (c == 0)
{
auto it = std::upper_bound(v.begin(), v.end(), x);
int poz = (it != v.begin()) ? std::distance(v.begin(), it) - 1 : -1;
cout << poz+1 << '\n';
}
else if (c == 1)
{
auto it = std::upper_bound(v.begin(), v.end(), x);
int poz = (it != v.begin()) ? std::distance(v.begin(), it) - 1 : -1;
cout << poz+1 << '\n';
}
else if (c == 2)
{
auto it = std::lower_bound(v.begin(), v.end(), x);
int poz = (it != v.end()) ? std::distance(v.begin(), it) : -1;
cout << poz+1 << '\n';
}
}
}
int main()
{
std::ios_base::sync_with_stdio(false);
cin.tie(0);
citire();
solve();
return 0;
}