Pagini recente » Cod sursa (job #1528656) | Cod sursa (job #17445) | Cod sursa (job #1021840) | Cod sursa (job #96593) | Cod sursa (job #1683779)
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int NLIM = 100005;
int V[NLIM];
int N, M;
void Read()
{
fin >> N;
for(int i = 1; i <= N; i++)
fin >> V[i];
}
void Solve()
{
fin >> M;
for(int i = 1; i <= M; i++)
{
int _case, x, result;
fin >> _case >> x;
if(_case == 0)
{
result = upper_bound(V+1, V+N+1, x) - V - 1;
if(result >= 1 && result <= N)
{//Daca pozitia apartine vectorului
if(V[result] == x)
{//Daca este exact ceea ce cautam
fout << result << "\n";
}
else
fout << "-1\n";
}
}
if(_case == 1)
{
result = lower_bound(V+1, V+N+1, x+1) - V - 1;
fout << result << "\n";
}
if(_case == 2)
{
result = upper_bound(V+1, V+N+1, x-1) - V;
fout << result << "\n";
}
}
}
int main()
{
Read();
Solve();
return 0;
}