Pagini recente » Rating Gheorghevici Mihai (MBlue) | Cod sursa (job #1830749) | Cod sursa (job #1773248) | Cod sursa (job #3280933) | Cod sursa (job #1317288)
#include<fstream>
#include<algorithm>
#include<vector>
#include<queue>
#define NMAX 100003
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long V[NMAX];
long n;
int bsearch(unsigned long val) {
long i, poz = 1;
for(i=1; i<=n; i<<=1);
for(;i;i>>=1) {
if(poz+i<=n && val>=V[poz+i]) {
poz+=i;
}
}
return poz;
}
int main() {
long i;
fin>>n;
for(i=1; i<=n; i++) {
fin>>V[i];
}
long q, type;
long val;
long poz;
fin>>q;
while(q--) {
fin>>type>>val;
if(type == 0) {
poz = bsearch(val);
if(V[poz] == val) fout<<poz;
else fout<<-1;
} else if(type == 1) {
poz = bsearch(val);
fout<<poz;
} else {
poz = bsearch(val-1);
fout<<poz+1;
}
fout<<'\n';
}
}