Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #2510959) | Cod sursa (job #2813975) | Cod sursa (job #1366473) | Cod sursa (job #1397213)
#include <stdio.h>
#include <stdlib.h>
long long v[100000];
int main()
{
FILE *in, *out;
int N, M, i, j, a, x, pas;
in=fopen("cautbin.in", "r");
fscanf(in, "%d", &N);
for (i=1; i<=N; i++)
fscanf(in, "%d", &v[i]);
fscanf(in, "%d", &M);
out=fopen("cautbin.out", "w");
for (i=1; i<=M; i++)
{
fscanf(in, "%d%d", &a, &x);
j=0;
pas=1<<16;
if (a<2)
{
while (pas!=0)
{
if (j+pas<=N && v[j+pas]<=x)
j+=pas;
pas/=2;
}
if (a==0 && v[j]!=x)
fprintf(out, "-1\n");
else
fprintf(out, "%d\n", j);
}
else
{
while (pas!=0)
{
if (j+pas<=N && v[j+pas]<x)
j+=pas;
pas/=2;
}
fprintf(out, "%d\n", j+1);
}
}
fclose(in);
fclose(out);
return 0;
}