Pagini recente » Cod sursa (job #2397930) | Cod sursa (job #2251718) | Cod sursa (job #122657) | Cod sursa (job #2185633) | Cod sursa (job #1686473)
#include <stdio.h>
using namespace std;
FILE *in , *out;
const int N = 100001;
const int L = 16;
unsigned int el[N];
int allInOne(int n, int x, int c, unsigned int vec[]){
int j,pas;
if(x == 0){
pas = 1<<L;
j=0;
while(pas != 0){
if(j+pas <= n && vec[j+pas] <= c) j+= pas;
pas /= 2;
}
if(vec[j] == c) return j;
else return -1;
}else if(x == 1){
pas = 1<<L;
j=0;
while(pas != 0){
if(j+pas <= n && vec[j+pas] <= c) j+= pas;
pas /= 2;
}
return j;
}else if(x == 2){
pas = 1<<L;
j=0;
while(pas != 0){
if(j+pas <= n && vec[j+pas] < c) j+= pas;
pas /= 2;
}
return 1+j;
}
}
int main()
{
int n, m ,i, x, c;
in = fopen("cautbin.in" , "r");
fscanf(in, "%d" , &n);
for(i=1;i<=n;i++) fscanf(in, "%u" , &el[i]);
fscanf(in, "%d" , &m);
out = fopen("cautbin.out" , "w");
for(i=0;i<m;i++){
fscanf(in , "%d %d" , &x, &c);
fprintf(out , "%d\n" , allInOne(n,x,c,el));
}
return 0;
}