Pagini recente » Cod sursa (job #2189356) | Cod sursa (job #2804942) | Cod sursa (job #2895790) | Cod sursa (job #1249411) | Cod sursa (job #2391355)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int N=100009;
int n,task,q;
long long step,val,i;
long long v[N];
void binary()
{
long long ans;
for(step=1;step<=n;step<<=1);
if(task<=1)
{
for(i=0;step;step>>=1)
if(i+step<=n&&v[i+step]<=val)
i+=step;
ans=i;
if(task==0)
if(v[i]!=val)
ans=-1;
}
else
{
for(i=0;step;step>>=1)
if(i+step<=n&&v[i+step]<val)
i+=step;
ans=i+1;
}
fout<<ans<<'\n';
}
void solve()
{
while(q)
{
q--;
fin>>task>>val;
binary();
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
fin>>q;
solve();
return 0;
}