Pagini recente » Cod sursa (job #858234) | Cod sursa (job #473924) | Cod sursa (job #2621838) | Cod sursa (job #47931) | Cod sursa (job #1383834)
#include <stdio.h>
using namespace std;
FILE*f=fopen("cautbin.in","r"),*g=fopen("coutbin.out","w");
int v[100030], n, m, x, y;
int main()
{
fscanf(f,"%d\n",&n);
for(int i = 1; i <= n; i++)
{
fscanf(f,"%d ",&v[i]);
}
fscanf(f,"%d\n",&m);
for(int i = 1; i <= m; i++)
{
fscanf(f,"%d %d\n", &x, &y);
int p = 1, u = n, mij;
if(x == 2)
{
while(p <= u)
{
mij = (p+u) / 2;
if(v[mij] >= y)
{
u = mij - 1;
}
else{
p = mij + 1;
}
}
fprintf(g,"%d\n",p);
}
else {
while(p <= u)
{
mij = (p+u) / 2;
if(v[mij] <= y)
{
p = mij + 1;
}
else{
u = mij - 1;
}
}
if(v[u] == y && x == 0)
{
fprintf(g,"%d\n",u);
}
else if(v[u] != y && x == 0)
fprintf(g,"-1\n");
else
fprintf(g,"%d\n",u);
}
}
return 0;
}