Pagini recente » Cod sursa (job #3273010) | Cod sursa (job #2676526) | Cod sursa (job #2887710) | Cod sursa (job #46901) | Cod sursa (job #2639156)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int NMAX = 1e5;
int v[NMAX + 1];
int cb( int x, int n ) {
int pas = 1<<19;
int r = 0;
while( pas ) {
pas /= 2;
if( r + pas <= n && v[r + pas] <= x )
r += pas;
}
return r;
}
int main() {
int n, m;
fin>>n;
for( int i = 1; i <= n; i ++ )
fin>>v[i];
fin>>m;
for( int i = 1; i <= m; i ++ ) {
int tip, x;
fin>>tip>>x;
if( tip < 2 ) {
int poz = cb(x, n);
if( tip == 0 && v[poz] != x )
fout<<"-1\n";
else
fout<<poz<<"\n";
}
else {
int poz = cb(x - 1, n);
fout<<poz + 1<<"\n";
}
}
return 0;
}