Pagini recente » Cod sursa (job #1382205) | Cod sursa (job #2063989) | Cod sursa (job #3152355) | Cod sursa (job #3253821) | Cod sursa (job #2077215)
#include <fstream>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main(){
int N, sN[100002], M, x, intrebare;
fin >> N;
for( int i = 1 ; i <= N ; ++i ){
fin >> sN[i];
}
fin >> M;
for( int fg = 1 ; fg <= M ; ++fg ){
fin >> intrebare >> x;
int st = -1, dr = N, mid;
while( dr - st > 1 ){
mid = st + (dr - st) / 2;
if( x > sN[mid] ) st = mid;
else dr = mid;
}
if( intrebare == 0 ){
if( dr == N || sN[dr] != x ){
if( dr == N && sN[dr] == x ) fout << dr;
else fout << -1;
}else{
for( int parcurgere = dr ; parcurgere <= N ; ++parcurgere ){
if( sN[parcurgere] != x ){
fout << parcurgere - 1;
break;
}else if( parcurgere == N && sN[parcurgere] == x ) fout << parcurgere;
}
}
}
}
}