Pagini recente » Cod sursa (job #3201519) | Cod sursa (job #1018148) | Cod sursa (job #1576873) | Cod sursa (job #372917) | Cod sursa (job #1792081)
#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;
in >> N;
vector<int> numbers(N);
copy_n(istream_iterator<int>(in), N, numbers.begin());
in >> M;
while(M--)
{
int operation, value;
in >> 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)
out << -1;
else
out << ub - numbers.begin();
}
else if(operation == 2)
{
auto lb = lower_bound(numbers.begin(), numbers.end(), value);
out << lb - numbers.begin() + 1;
}
else
{
auto ub = upper_bound(numbers.begin(), numbers.end(), value);
out << ub - numbers.begin();
}
out << '\n';
}
return 0;
}