Pagini recente » Cod sursa (job #1098449) | Cod sursa (job #1519927) | Cod sursa (job #1580161) | Cod sursa (job #2947692) | Cod sursa (job #2644348)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int mi, n, m, i, x, val, v[100001];
void Cautare(int x, int st, int dr)
{
while ( st <= dr)
{
mi = ( st + dr )/2;
if ( v[mi] == x )
break;
if ( v[mi] < x )
st = mi + 1;
else if ( v[mi] > x )
dr = 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';
}
else 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';
}
else if ( val == 2)
{
Cautare(x,1,n);
if ( v[mi] == x )
while ( v[mi-1] == v[mi] )
mi--;
else if ( v[mi] < x )
m++;
g << mi << '\n';
}
}
return 0;
}