Pagini recente » Cod sursa (job #1799176) | Cod sursa (job #1522833) | Rating matei bejenaru (ciuceaciu) | simulareojiclasa7 | Cod sursa (job #1569426)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int N, x, cod, place, K, a[100009];
int main ()
{
fin >> N;
for (int i=1; i<=N; i++)
fin >> a[i];
fin >> K;
for (int i=1; i<=K; i++)
{
fin >> cod >> x;
if (cod == 0) /// cea mai din dreapta pozitie unde poate fi inserat x fara sa strice rel de ordine
{
place = upper_bound(a+1, a+N+1, x) - a - 1;
if (a[place] != x) fout << "\-1";
else fout << place << endl;
}
else if (cod == 1) /// cea mai din dreapta poz unde poate fi x sau un nr mai mic decat x
{
place = upper_bound(a+1, a+N+1, x) - a - 1;
fout << place << endl;
}
else /// cod == 2
{
place = lower_bound(a+1, a+N+1, x) - a - 1;
if (a[place] != x && a[place+1] == x) place++;
fout << place << endl;
}
}
fin.close();
fout.close();
return 0;
}