Pagini recente » Cod sursa (job #3137282) | Cod sursa (job #1701527) | Cod sursa (job #1855308) | Cod sursa (job #2250057) | Cod sursa (job #1935196)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int n,m;
vector <int> sol;
vector <int>::iterator low,up;
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
int x;
for(int i=1;i<=n;i++)
{
scanf("%d", &x);
sol.push_back(x);
}
scanf("%d", &m);
int y;
for(int i=1;i<=m;i++)
{
scanf("%d %d", &x, &y);
if(x==0)
{
up =upper_bound (sol.begin(), sol.end(), y);
if((up -sol.begin())==n and sol[n-1]!=y)
printf("%d\n", -1);
else
printf("%d\n", (up -sol.begin()));
}
if(x==1)
{
up =upper_bound (sol.begin(), sol.end(), y);
printf("%d\n", (up -sol.begin()));
}
if(x==2)
{
low=lower_bound (sol.begin(), sol.end(), y);
printf("%d\n", (low -sol.begin()+1));
}
}
return 0;
}