Pagini recente » Cod sursa (job #2356388) | Cod sursa (job #2488432) | Cod sursa (job #2482190) | Cod sursa (job #1356766) | 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;
}