Pagini recente » Cod sursa (job #1952427) | Cod sursa (job #1692288) | Cod sursa (job #575181) | Cod sursa (job #1754287) | Cod sursa (job #2644357)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001], mi, N, i, x, val, M;
void Cautare(int x, int st, int dr)
{
while( st <= dr )
{
mi = ( st + dr )/2;
if( v[mi] == x )
break;
else if( v[mi] > x )
dr = mi - 1;
else if( v[mi] < x )
st = mi + 1;
}
}
int main()
{
f >> N;
for( i=1; i<=N; ++i )
f >> v[i];
f >> M;
for( i=1; i<=M; ++i )
{
f >> val >> x;
if( val == 0 )
{
Cautare(x,1,N);
if ( v[mi] == x )
{
while( v[mi+1] == v[mi] )
mi++;
g << mi << '\n';
}
else g << -1 <<'\n';
}
if( val == 1)
{
Cautare(x,1,N);
if( v[mi] == x )
{
while( v[mi+1] == v[mi] )
mi++;
}
else if( v[mi] > x )
mi--;
g << mi << '\n';
}
if( val == 2)
{
Cautare(x,1,N);
if( v[mi] == x )
{
while( v[mi-1] == v[mi] )
mi--;
}
else if( v[mi] < x )
mi++;
g << mi << '\n';
}
}
return 0;
}