Pagini recente » Cod sursa (job #1960063) | Cod sursa (job #1953598) | Cod sursa (job #45852) | Cod sursa (job #3201851) | Cod sursa (job #2028414)
#include <fstream>
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
int v[100001], mid;
int bin_search(int low, int high, int key)
{
if ( low <= high )
{
mid = low + (high - low)/2;
if ( v[mid] < key )
bin_search (mid+1, high, key);
else
{
if ( v[mid] > key )
bin_search (low, high, key);
else
return mid;
}
}
return -1;
}
int main()
{
int n, m;
fin>>n;
for ( int i = 1; i <= n; ++i )
fin>>v[i];
fin>>m;
while (m--)
{
int y, x;
fin>>y>>x;
if ( y == 0 )
{
bin_search(1, n, x);
while ( v[mid+1] == x )
mid++;
fout<<mid<<'\n';
}
else
{
if ( y == 1 )
{
bin_search(1, n, x);
while ( v[mid+1] == x )
mid++;
fout<<mid<<'\n';
}
else
{
bin_search(1, n, x);
while ( v[mid-1] == x )
mid--;
fout<<mid<<'\n';
}
}
}
}