Pagini recente » Cod sursa (job #1426681) | Cod sursa (job #3143435) | Cod sursa (job #959452) | Cod sursa (job #1633028) | Cod sursa (job #2122454)
#include <fstream>
#define NMax 100005
using namespace std;
int N, M, v[NMax], logN;
int main(){
int tip, x, i, lg;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> N;
for(i = 1; i <= N; i++)
fin >> v[i];
for(logN = 1; logN <= N; logN <<= 1);
fin >> M;
for(; M; M--){
fin >> tip >> x;
if( tip < 2){
for(lg = logN , i = 0; lg; lg >>= 1)
if(i + lg <= N && v[i + lg] <= x)
i += lg;
if(!tip && v[i] != x)
fout << "-1" << endl;
else fout << i << endl;
continue;
}
for(lg = logN, i = N; lg; lg >>= 1)
if(i - lg > 0 && v[i - lg] >= x)
i-= lg;
fout << i << endl;
}
return 0;
}