Pagini recente » Cod sursa (job #432583) | Cod sursa (job #2437500) | Cod sursa (job #1347914) | Cod sursa (job #2499514) | Cod sursa (job #2722981)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int nMax = 100000 + 10;
vector < int > v;
int n, m, e, c;
int main()
{
fin >> n;
v.resize(n);
for (int i = 0; i < n; i++)
{
fin >> v[i];
}
fin >> m;
for (int i = 0; i < m; i++)
{
fin >> c >> e;
if (c == 0)
{
int pos = upper_bound(v.begin(), v.end(), e) - v.begin() - 1;
if (v[pos] == e && pos < n)
{
fout << pos + 1 << '\n';
}
else
{
fout << "-1\n";
}
}
else if (c == 1)
{
fout << upper_bound(v.begin(), v.end(), e) - v.begin() << '\n';
}
else if (c == 2)
{
fout << lower_bound(v.begin(), v.end(), e) - v.begin() + 1 << '\n';
}
}
fin.close();
fout.close();
return 0;
}