Pagini recente » Cod sursa (job #2488539) | Cod sursa (job #2921738) | Cod sursa (job #60792) | Cod sursa (job #2389992) | Cod sursa (job #2640028)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#define Nmax 100005
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
vector < int > Numere;
void Read()
{
fin >> n;
for(int i = 1; i <= n; i ++)
{
int x;
fin >> x;
Numere.push_back(x);
}
}
int main()
{
Read();
int k;
fin >> k;
while( k -- )
{
int _case, x;
fin >> _case >> x;
if( _case == 0 )
{
int upper = upper_bound(Numere.begin(), Numere.end(), x) - Numere.begin();
if(upper >= 0 && upper <= n && Numere[upper - 1] == x)
fout << upper << "\n";
else
fout << -1 << "\n";
}
if(_case == 1)
{
int lower = lower_bound(Numere.begin(), Numere.end(), x + 1) - Numere.begin(); // x + ! pt ori il ia pe x, ori pe urmatorul mai mic
fout << lower << "\n";
}
if(_case == 2)
{
int upper = upper_bound(Numere.begin(), Numere.end(), x - 1) - Numere.begin() + 1;
fout << upper << "\n";
}
}
return 0;
}