Pagini recente » Cod sursa (job #1585660) | Cod sursa (job #2617762) | Cod sursa (job #1560174) | Cod sursa (job #1144187) | Cod sursa (job #1317281)
#include<fstream>
#include<algorithm>
#include<vector>
#include<queue>
#define NMAX 100003
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
unsigned long V[NMAX];
int n;
int bsearch(unsigned long val) {
int i, poz = 1;
for(i=1; i<=n; i<<=1);
for(i>>=1;i;i>>=1) {
if(poz+i<=n && val>=V[poz+i]) {
poz+=i;
}
}
return poz;
}
int main() {
int i;
fin>>n;
for(i=1; i<=n; i++) {
fin>>V[i];
}
int q, type;
unsigned long val;
int 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';
}
}