Pagini recente » Cod sursa (job #394179) | Cod sursa (job #3159577) | Borderou de evaluare (job #755655) | Cod sursa (job #709471) | Cod sursa (job #412220)
Cod sursa(job #412220)
#include<fstream>
#include<algorithm>
using namespace std;
long v[100005];
int main ()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
long i,n,m,x,y,poz;
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
fin>>m;
sort(v+1,v+n+1);
for(i=1;i<=m;i++)
{
fin>>x>>y;
if (x == 0) {
poz = upper_bound(v + 1, v + n + 1, y) - v - 1;
if (poz <= n && poz >= 1 && v[poz] == y)
fout<<poz<<"\n";
else
fout<<-1<<"\n";
} else if (x == 1) {
poz = lower_bound(v + 1, v + n + 1, y + 1) - v - 1;
fout<<poz<<"\n";
} else {
poz = upper_bound(v + 1, v + n + 1, y - 1) - v;
fout<<poz<<"\n";
}
}
fin.close ();
fout.close ();
return 0;
}