Pagini recente » Cod sursa (job #1214612) | Borderou de evaluare (job #2363670) | Cod sursa (job #2399613) | Cod sursa (job #2464626) | Cod sursa (job #2369385)
#include <bits/stdc++.h>
using namespace std;
int n, x, y, m, v[100011];
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> n;
for (int i=1;i<=n;i++) {
fin >> v[i];
}
fin >> m;
for (int i=1;i<=m;i++) {
fin >> x >> y;
if (x==0) {
int b = upper_bound(v+1,v+n+1,y)-v-1;
if (b<=n && b>=1 && v[b]==y) fout << b << '\n';
else fout << -1 << '\n';
}
else if (x==1) fout << lower_bound(v+1,v+n+1,y+1)-v-1 << '\n';
else fout << upper_bound(v+1,v+n+1,y-1)-v << '\n';
}
return 0;
}