Pagini recente » Cod sursa (job #440634) | Cod sursa (job #77474) | Cod sursa (job #3037707) | Cod sursa (job #718792) | Cod sursa (job #2850644)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, i, m, j, x, mid, st, dr, v[100005];
int main(){
fin >> n;
for ( int i = 1; i <= n; i++ )
fin >> v[i];
fin >> m;
for ( int i = 1; i <= m; i++ ){
fin >> j >> x;
st = 1;
dr = n;
while ( st <= dr ){
mid = ( st + dr )/2;
if ( j == 0 ){
if ( v[mid] <= x )
st = mid + 1;
else
dr = mid - 1;
}
if ( j == 1 ){
if ( v[mid] <= x )
st = mid + 1;
else
dr = mid - 1;
}
if ( j == 2 ){
if ( v[mid] >= x )
dr = mid - 1;
else
st = mid + 1;
}
}
if ( j == 0 ){
if ( v[dr] == x )
fout << dr << "\n";
else
fout << "-1" << "\n";
}
if ( j == 1 ){
fout << dr << "\n";
}
if ( j == 2 ){
fout << st << "\n";
}
}
return 0;
}