Pagini recente » Cod sursa (job #752837) | Cod sursa (job #651621) | Cod sursa (job #223810) | Cod sursa (job #1008759) | Cod sursa (job #2075628)
#include <iostream>
#include <fstream>
#define MAXN 100001
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");;
int v[MAXN],pas,r,n;
const int l = 16;
void p1(int x){
pas = 1<<l;
r = 0;
while(pas != 0){
if(r + pas <= n && v[r+pas] <= x)
r += pas;
pas /= 2;
}
if(v[r] != x)
r = -1;
}
void p2(int x){
pas = 1<<l;
r = 0;
while(pas != 0){
if(r + pas <= n && v[r+pas] <= x)
r += pas;
pas /= 2;
}
}
void p3(int x){
pas = 1<<l;
r = 0;
while(pas != 0){
if(r + pas <= n && !(v[r + pas] >= x))
r += pas;
pas /= 2;
}
r++;
}
int main()
{
in>>n;
char ch;
for(int i = 1; i <= n; i++)
in>>v[i];
int q,x;
in>>q;
for(int i = 0 ; i < q; i ++){
in>>ch>>x;
if(ch == '0')
p1(x);
else if(ch == '1')
p2(x);
else if(ch == '2')
p3(x);
out<<r<<"\n";
}
return 0;
}