Pagini recente » Cod sursa (job #3232818) | Cod sursa (job #2094919) | Cod sursa (job #1391602) | Cod sursa (job #400350) | Cod sursa (job #3237552)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "cautbin.in" );
ofstream fout( "cautbin.out" );
const int DIM = 1e5 + 1;
int v[DIM];
int main() {
ios_base::sync_with_stdio(0);
fin.tie(0);
int n, q, tp, x;
fin >> n;
for ( int i = 1; i <= n; ++i ) {
fin >> v[i];
}
fin >> q;
while ( q-- ) {
fin >> tp >> x;
int l = 1, r = n + 1;
while ( r - l > 1 ) {
int mid = (l + r) / 2;
if ( v[mid] <= x ) {
l = mid;
} else {
r = mid;
}
}
if ( tp == 0 ) {
fout << (v[l] == x ? l : -1) << "\n";
} else if ( tp == 1 ) {
fout << l << "\n";
} else {
l = 0, r = n;
while ( r - l > 1 ) {
int mid = (l + r) / 2;
if ( v[mid] < x ) {
l = mid;
} else {
r = mid;
}
}
fout << r << "\n";
}
}
fin.close();
fout.close();
return 0;
}