Pagini recente » Cod sursa (job #1622188) | Cod sursa (job #2690588) | Cod sursa (job #314439) | Cod sursa (job #314604) | Cod sursa (job #1891908)
#include <fstream>
using namespace std;
int v[100001] , N , M , intrebare , x;
void CautareBinara0()
{
int s = 1 , f = N , mijloc , poz = -1;
while ( s > f )
{
mijloc = ( s + f ) / 2;
if ( x == v[mijloc] )
{
for ( int i = mijloc ; i <= N ; ++i )
if ( v[i] == x )
poz = i;
else
break;
}
else
if ( x < v[mijloc] )
f = mijloc - 1;
else
s = mijloc + 1;
}
return poz;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin >> N; // N apoi un sir de N elemente
for ( int i = 1 ; i <= N ; ++i )
fin >> v[i];
fin >> M; // M apoi M linii de 2 elemente fiecare
for ( int i = 1 ; i <= M ; ++i )
{
fin >> intrebare >> x;
switch ( intrebare )
{
case 1:
CautareBinara1();
break;
case 2:
CautareBinara2();
break;
default:
CautareBinara0();
}
}
return 0;
}