Pagini recente » Cod sursa (job #83540) | Cod sursa (job #2844714) | Cod sursa (job #2215451) | Cod sursa (job #340531) | Cod sursa (job #2328768)
using namespace std;
#include<iostream>
#include<fstream>
#include<algorithm>
int main() {
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
int nrIntrebari;
fin >> n;
int v[n+1];
for (int i = 1; i<=n; i++) {
fin >> v[i];
}
sort (v+1, v+n+1);
fin >> nrIntrebari;
for (int i = 1; i<=nrIntrebari; i++) {
int intrebare;
int x;
fin >> intrebare;
fin >> x;
int dr = n;
int st = 1;
if (intrebare == 0) {
int ultpoz = -1;
while (st <= dr) {
int mij = (st + dr) / 2;
if (x < v[mij]) {
dr = mij - 1;
} else if (v[mij] < x) {
st = mij + 1;
} else {
ultpoz = mij;
st = mij + 1;
}
}
fout << ultpoz << endl;
} else if (intrebare == 1) {
int ultpoz = -1;
while (st <= dr) {
int mij = (st + dr) / 2;
if (x < v[mij]) {
dr = mij - 1;
} else {
ultpoz = mij;
st = mij + 1;
}
}
fout << ultpoz << endl;
} else if (intrebare == 2) {
int ultpoz = -1;
while (st <= dr) {
int mij = (st + dr) / 2;
if (v[mij] < x) {
st = mij + 1;
} else {
ultpoz = mij;
dr = mij - 1;
}
}
fout << ultpoz;
}
}
fin.close();
fout.close();
return 0;
}