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