Pagini recente » Cod sursa (job #1156142) | Cod sursa (job #1333531) | Cod sursa (job #418367) | Cod sursa (job #2964685) | Cod sursa (job #611208)
Cod sursa(job #611208)
#include<fstream>
int n,m,v[100100];
using namespace std;
int main() {
int i,logN,lg,x,y;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
in>>n;
for(i=1;i<=n;in>>v[i],i++);
in>>m;
for(logN=1;logN<=n;logN<<=1);
for(;m;m--)
{in>>x>>y;
if(x<2)
{for (lg = logN, i = 0; lg; lg >>= 1)
if (i + lg <= n && v[i + lg] <= y)
i += lg;
if (!x&& v[i] != y)
out<<"-1\n";
else
out<<i<<'\n';
continue;
}
for (lg = logN, i = n; lg; lg >>= 1)
if (i - lg > 0 && v[i - lg] >= y)
i -= lg;
out<<i<<'\n';
}
out.close();
in.close();
return 0;
}