Pagini recente » Cod sursa (job #2821973) | Cod sursa (job #1290323) | Cod sursa (job #2206660) | Cod sursa (job #1443994) | Cod sursa (job #2287378)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int caut( int x, vector <int>& v ){
int stg = 0, drp = (int)v.size() - 1;
while( stg <= drp ){
int mij = ( stg + drp ) / 2;
if( v[mij] == x ){
while( ( mij < drp ) && ( v[mij+1] == x ) )
mij++;
return mij;
}
if ( v[mij] > x )
drp = mij - 1;
else
stg = mij + 1;
}
return drp;
}
int main()
{
vector <int> v;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int N;
fin >> N;
for( int i = 0; i < N; i++ ){
int aux;
fin >> aux;
v.push_back(aux);
}
int M;
fin >> M;
for( int i = 1; i <= M; i++ ){
int intr, nr;
fin >> intr;
fin >> nr;
int poz = caut( nr, v );
if( intr == 2 ){
while( ( poz > 0 ) && ( v[poz] == nr ) ) poz--;
fout << poz + 2 << endl;
}
else
fout << poz + 1 << endl;
}
return 0;
}