Pagini recente » Cod sursa (job #703676) | Cod sursa (job #1776719) | Cod sursa (job #1279779) | Cod sursa (job #2895569) | Cod sursa (job #1792078)
#include <iostream>
#include <algorithm>
#include <fstream>
#include <vector>
#include <string>
#include <iterator>
#include <numeric>
#include <string>
#include <set>
#include <map>
#include <queue>
using namespace std;
ifstream in("divprim.in");
ofstream out("divprim.out");
int main()
{
int N, M;
cin >> N;
vector<int> numbers;
copy_n(istream_iterator<int>(cin), N, back_inserter(numbers));
cin >> M;
while(M--)
{
int operation, value;
cin >> operation >> value;
if(operation == 0)
{
auto lb = lower_bound(numbers.begin(), numbers.end(), value);
auto ub = upper_bound(numbers.begin(), numbers.end(), value);
if(lb == numbers.end() || *lb != value)
cout << -1;
else
cout << ub - numbers.begin();
}
else if(operation == 2)
{
auto lb = lower_bound(numbers.begin(), numbers.end(), value);
cout << lb - numbers.begin() + 1;
}
else
{
auto ub = upper_bound(numbers.begin(), numbers.end(), value);
cout << ub - numbers.begin();
}
cout << '\n';
}
return 0;
}