Pagini recente » Cod sursa (job #3204119) | Cod sursa (job #3135465) | Cod sursa (job #2667478) | Cod sursa (job #3216565) | Cod sursa (job #3148800)
#include <iostream>
using namespace std;
int v[100001];
int maxst(int x,int n)
{
int st = 1,dr = n,ans;
while (st <= dr)
{
int med=(st+dr)/2;
if(v[med]<=x)
{
ans=med;
st=med+1;
}
else
dr=med-1;
}
return ans;
}
int mindr(int x,int n)
{
int st=1,ans,dr=n;
while (st<=dr)
{
int med=(st+dr)/2;
if(v[med]>=x)
{
ans=med;
dr=med-1;
}
else
st=med+1;
}
return ans;
}
int main()
{
int n,m;
cin>>n;
for (int i = 1; i <= n; i++)
cin>>v[i];
cin>>m;
for (int i = 1 ; i <= m; i++)
{
int cer,x;
cin>>cer>>x;
if(cer==1 or cer==0)
cout<<maxst(x,n)<<'\n';
else
cout<<mindr(x,n)<<'\n';
}
return 0;
}