Pagini recente » Cod sursa (job #2587580) | Cod sursa (job #2593224) | Borderou de evaluare (job #179968) | Cod sursa (job #2970046) | Cod sursa (job #2834849)
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int v[100005];
int main()
{
int n,m,x,mij,cer,st,dr,nr=0;
fin >> n;
for(int i=1; i<=n ;i++)
fin>>v[i];
sort(v+1,v+n+1);
fin>>m;
for(int i=1 ;i<=m ;i++)
{
fin>>cer>>x;
if(cer == 0){
nr=-1;//
dr=n;
st=1;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=x) {
st=mij + 1;
if(v[mij]==x){
nr=mij;
}
}
else
dr=mij -1;
}
fout<<nr<<'\n';
}
if (cer==1){
nr=0;
st=1;
dr=n;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<=x) {
st=mij +1;
nr=mij;
}
else
dr =mij -1;
}
fout<<nr<<'\n';
}
if (cer == 2)
{
st=1;
dr=n;
nr=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(v[mij]<x) {
st=mij+1;
}
else
{
nr=mij;
dr=mij-1;
}
}
fout<<nr<<endl;
}
}
return 0;
}