Pagini recente » Cod sursa (job #2811682) | Cod sursa (job #3176467) | Cod sursa (job #2323846) | Cod sursa (job #716408) | Cod sursa (job #3221712)
#include <bits/stdc++.h>
using namespace std;
int v[100005];
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int frp(int x, int n){
int l = 1;
int r = n;
while(l < r){
int mid = (l + r)/2;
if(v[mid + 1] <= x){
l = mid + 1;
}else{
r = mid;
}
}
return l;
}
int flp(int x, int n){
int l = 1;
int r = n;
while(l < r){
int mid = (l + r)/2;
if(v[mid] >= x){
r = mid;
}else{
l = mid+1;
}
}
return l;
}
int main()
{
int n,m;
fin >> n;
for (int i = 1; i <= n; ++i){
fin >> v[i];
}
fin >> m;
for(int i = 1 ;i <= m ;++i){
int type,x;
fin >> type >> x;
if(type == 0){
int poz = frp(x,n);
if(v[poz] != x){
fout<< -1 <<"\n";
}else {
fout<< poz <<"\n";
}
}else if(type == 1){
int poz = frp(x,n);
fout << poz << "\n";
}else{
int poz = flp(x,n);
fout << poz <<"\n";
}
}
return 0;
}