Pagini recente » Cod sursa (job #1490234) | Cod sursa (job #610846) | Cod sursa (job #589970) | Cod sursa (job #3244131) | Cod sursa (job #1166957)
/*
ID: adinama1
PROG: test
LANG: C++
*/
#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <ctype.h>
#include <cstring>
#include <string>
#include <ctime>
#include <cassert>
#include <utility>
using namespace std;
#define LIM 100005
int v[LIM];
int main() {
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out","w", stdout);
int n, m, op, num;
scanf("%d ", &n);
for(int i = 0; i < n; ++i) {
scanf("%d ", &v[i]);
}
scanf("%d ", &m);
for(int i = 0; i < m; ++i) {
scanf("%d %d", &op, &num);
switch(op) {
case 0: if(binary_search(v, v + n, num)) {
printf("%d\n", upper_bound(v, v + n, num) - v); // cea mai mare poz pe care se afla un element = num
} else
printf("-1\n");
break;
case 1: printf("%d\n", lower_bound(v, v + n, num + 1) - v); // cea mai mare poz pe care se afla un element <= num
break;
default: printf("%d\n", upper_bound(v, v + n, num - 1) - v + 1); // cea mai mica poz pe care se afla un element >= num
}
}
return 0;
}