Pagini recente » Cod sursa (job #2025188) | Cod sursa (job #1005347) | Cod sursa (job #3192374) | Cod sursa (job #1825652) | Cod sursa (job #524567)
Cod sursa(job #524567)
#include<iostream>
#include<fstream>
using namespace std;
unsigned int n,x[100001],m,tip,nr,aaa,pas;
ifstream aa("cautbin.in");
ofstream ss("cautbin.out");
int main() {
int i,j;
aa >> n;
for (i=1;i<=n;++i) {
aa >> x[i];
}
aaa=1;
while (aaa<=n) {
aaa*=2;
}
aaa=aaa/2;
aa >> m;
for (i=1;i<=m;++i) {
aa >> tip >> nr;
pas=aaa;
switch (tip) {
case 0:
for (j=0;pas>0;pas/=2) {
if (x[j+pas]<=nr && j+pas<=n) {
j+=pas;
}
}
if (x[j]==nr) ss<<j;
else ss << "-1";
break;
case 1:
for (j=0;pas>0;pas/=2) {
if (x[j+pas]<=nr && j+pas<=n) {
j+=pas;
}
}
ss<<j;
break;
case 2:
for (j=0;pas>0;pas/=2) {
if (x[j+pas]<nr && j+pas<=n) {
j+=pas;
}
}
ss<<j+1;
break;
}
ss << "\n";
}
return 0;
}