Pagini recente » Cod sursa (job #1019723) | Cod sursa (job #2129532) | Cod sursa (job #1375400) | Cod sursa (job #2550727) | Cod sursa (job #472141)
Cod sursa(job #472141)
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
#define FIN "cautbin.in"
#define FOUT "cautbin.out"
int main(void) {
int n, tests;
vector<int> elements;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
int element;
scanf("%d", &element);
elements.push_back(element);
}
scanf("%d", &tests);
while (tests--) {
int code, value;
vector<int>::iterator pos;
scanf("%d%d", &code, &value);
switch (code) {
case 0:
pos = upper_bound(elements.begin(), elements.end(), value) - 1;
printf("%d\n", (*pos == value) ? (pos - elements.begin()) + 1 : -1);
break;
case 1:
pos = upper_bound(elements.begin(), elements.end(), value) - 1;
printf("%d\n", (pos - elements.begin()) + 1);
break;
case 2:
pos = lower_bound(elements.begin(), elements.end(), value);
printf("%d\n", (pos - elements.begin()) + 1);
break;
}
}
return 0;
}