Pagini recente » Cod sursa (job #1898916) | Cod sursa (job #2863726) | Cod sursa (job #1069342) | Cod sursa (job #1703752) | Cod sursa (job #2782809)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ( "cautbin.in" );
ofstream fout ( "cautbin.out" );
int n, m, c, x;
int a [ 25 ];
void Cin ( int v [ 25 ], int &n, int &m ) {
fin >> n;
for ( int i = 1; i <= n; ++ i ) {
fin >> v [ i ];
}
fin >> m;
}
int x0 ( int x ) {
int poz;
poz = -1;
int mij, st, dr;
st = 1;
dr = n;
while ( st <= dr ) {
mij = ( st + dr ) / 2;
if ( x < a [ mij ] ) {
dr = mij - 1;
}
else {
if ( x == a [ mij ] ) {
poz = mij;
}
st = mij + 1;
}
}
return poz;
}
int x1 ( int x ) {
int poz;
poz = -1;
int mij, st, dr;
st = 1;
dr = n;
while ( st <= dr ) {
mij = ( st + dr ) / 2;
if ( x >= a [ mij ] ) {
poz = mij;
st = mij + 1;
}
else {
dr = mij - 1;
}
}
return poz;
}
int x2 ( int x ) {
int poz;
poz = -1;
int mij, st, dr;
st = 1;
dr = n;
while ( st <= dr ) {
mij = ( st + dr ) / 2;
if ( x <= a [ mij ] ) {
poz = mij;
dr = mij - 1;
}
else {
st = mij + 1;
}
}
return poz;
}
int main() {
Cin ( a, n, m );
for ( int i = 1; i <= m; ++ i ) {
fin >> c >> x;
if ( c == 0 ) {
fout << x0 ( x ) << '\n';
}
if ( c == 1 ) {
fout << x1 ( x ) << '\n';
}
if ( c == 2 ) {
fout << x2 ( x ) << '\n';
}
}
return 0;
}