Pagini recente » Cod sursa (job #638223) | Cod sursa (job #351688) | Cod sursa (job #1521166) | Cod sursa (job #2375891) | Cod sursa (job #2317297)
#include <bits/stdc++.h>
using namespace std ;
ifstream f ("cautbin.in") ;
ofstream g ("cautbin.out") ;
unsigned int N , M , i , j , query , poz;
unsigned long long x;
vector <unsigned long long> v ;
void solve0()
{
poz = lower_bound(v.begin() , v.end() , x) - v.begin();
if (poz < 0 || poz > v.size()) g << -1 << '\n';
else if (v.at(poz) != x) g << -1 << '\n';
else
{
g << upper_bound(v.begin() , v.end() , x) - v.begin() << '\n' ;
}
}
void solve1()
{
g << upper_bound(v.begin() , v.end() , x) - v.begin() << '\n';
}
void solve2()
{
g << lower_bound(v.begin() , v.end() , x) - v.begin() + 1 << '\n';
}
int main()
{
f >> N ;
for (i = 0 ; i < N ; ++i)
{
f >> x;
v.push_back(x);
}
sort(v.begin() , v.end());
f >> M ;
for (i = 1 ; i <= M ; ++i)
{
f >> query >> x ;
if (query == 0) solve0() ;
if (query == 1) solve1() ;
if (query == 2) solve2() ;
}
f.close();
g.close();
}