Pagini recente » Cod sursa (job #665478) | Cod sursa (job #920073) | Cod sursa (job #1157280) | Cod sursa (job #430456) | Cod sursa (job #1100152)
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,m,a[10000];
void CB0(int x){
int l=1,r=n,s=-1;
while (l<=r) {
int m=(l+r)/2;
if (a[m]==x) {
s=m;
l=m+1;
}else if (a[m]<x){
l=m+1;
}else{
r=m-1;
}
}
fout<<s<<"\n";
}
void CB1(int x){
int l=1 ,r=n, s=-1;
while(l<=r) {
int m=(l+r)/2;
if (a[m]<=x) {
s=m;
l=m+1;
}else
r=m-1;
}
fout<<s<<"\n";
}
void CB2(int x){
int l=1,r=n,s=-1;
while (l<=r) {
int m=(l+r)/2;
if (a[m]>=x) {
s=m;
r=m-1;
}else {
l=m+1;
}
}
fout<<s<<"\n";
}
int main()
{
int x,porn;
fin>>n;
for (int i=1;i<=n;i++)
fin>>a[i];
fin>>m;
for (int i=1;i<=m;i++) {
fin>>porn>>x;
if(porn==0)
CB0(x);
else if(porn==1)
CB1(x);
else
CB2(x);
}
return 0;
}