Pagini recente » Cod sursa (job #2210126) | Cod sursa (job #1210731) | Cod sursa (job #841848) | Cod sursa (job #649019) | Cod sursa (job #1308601)
#include <fstream>
#define nmax 100000
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N, v[nmax], M;
int cautareBinara(int x, int cerinta){
int i, S;
for(S = 1 ; S <= N ; S <<= 1);
for(i = 1; S; S >>= 1){
if(v[S + i] <= x && S + i < N)
i += S;
}
switch (cerinta){
case 0 : {if(v[i] == x) return i; return -1;} break;
case 1 : {return i;} break;
case 2 : {
if(v[i] == x){ while(v[i] == x) --i; return i + 1;}
return i + 1;
}
}
}
int main()
{int i, nr, c;
f>>N;
for(i = 1; i <= N; ++i)
f>>v[i];
f>>M;
for(i = 1; i <= M; ++i){
f>>c>>nr;
g<<cautareBinara(nr, c)<<'\n';
}
return 0;
}