Pagini recente » Cod sursa (job #2875325) | Cod sursa (job #1186045) | Cod sursa (job #1734693) | Cod sursa (job #3239293) | Cod sursa (job #1317277)
#include<fstream>
#include<algorithm>
#include<vector>
#include<queue>
#define NMAX 100001
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 = 0;
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=0; 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+1;
else fout<<-1;
} else if(type == 1) {
poz = bsearch(val);
fout<<poz+1;
} else {
poz = bsearch(val-1);
fout<<poz+2;
}
fout<<'\n';
}
}