Pagini recente » Cod sursa (job #927689) | Cod sursa (job #568679) | Cod sursa (job #1967497) | Cod sursa (job #428507) | Cod sursa (job #2346999)
#include <fstream>
using namespace std;
ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");
int N, M, x, y;
int v[100001];
int count2(int x){
int L = 16;
int r=0,pas=1<<L;
while(pas!=0){
if(r+pas<=N && v[r+pas]<x){
r+=pas;
}
pas/=2;
}
r++;
return r;
}
int main()
{
cin >> N;
for(int i = 0; i < N; i ++)
cin >> v [i];
cin >> M;
for (int i = 0; i < M; i ++)
{
cin >> x >> y;
if (x == 0)
{
int z = -1;
for (int j = 0; j < N; j ++)
{
if (v [j] == y)
z = j + 1;
}
cout << z<< '\n';
}
else if (x == 1)
{
int z = -1;
for (int j = 0; j < N; j ++)
{
if (v [j] <= y)
z = j + 1;
}
cout << z << '\n';
}
else if (x == 2)
{
cout << count2 (y) + 1 << '\n';
}
}
return 0;
}