Pagini recente » Cod sursa (job #125608) | Cod sursa (job #2204950) | Cod sursa (job #2546926) | Cod sursa (job #440408) | Cod sursa (job #1117590)
#include<fstream>
using namespace std;
int v[1000000],q[1000000];
int main()
{
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
int x,n, i, j, left, right, mid, res,m;
f >> n;
for (i=1; i<=n; i++) f >> v[i];
f >> m;
for (j=1; j<=m; j++)
{
f >> q[j];
f >> x;
if (q[j] == 0)
{
res = -1;
right = n;
left = 1;
while (left <= right)
{
mid = (left+right) / 2;
if (v[mid] == x)
{
res = mid;
left = mid + 1;
}
if (v[mid] < x) left = mid + 1;
if (v[mid] > x) right = mid - 1;
}
g << res << endl;
}
res=-1;
left = 1;
right = n;
if (q[j] == 1)
{
while (left <= right)
{
mid = (left+right)/2;
if (v[mid] <= x )
{
left = mid + 1;
res = mid ;
}
if (v[mid] > x)
right = mid - 1;
}
g << res << endl;
}
res=-1;
left = 1;
right = n;
if (q[j] == 2)
{
while (left <= right)
{
mid = (left+right)/2;
if (v[mid] >= x )
{
right = mid - 1;
res = mid;
}
if (v[mid] < x)
{
left = mid + 1;
}
}
g << res;
}
}
return 0;
}