Pagini recente » Cod sursa (job #1932789) | Cod sursa (job #1013664) | Cod sursa (job #1562566) | Cod sursa (job #1023684) | Cod sursa (job #2751273)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream out("cautbin.out");
vector <int> a;
int n;
void intrebare(int in, int x)
{
int st = 0, dr = n - 1, mid;
if (in == 0)
{
while (st <= dr)
{
mid = (st + dr) / 2;
if (a[mid] <= x)
st = mid + 1;
else
dr = mid - 1;
}
if(a[dr] == x)
out << dr + 1 << endl;
else
out << "-1" << endl;
}
else if (in == 1)
{
while (st <= dr)
{
mid = (st + dr) / 2;
if (a[mid] <= x)
st = mid + 1;
else
dr = mid - 1;
}
out << dr + 1 << endl;
}
else if (in == 2)
{
while (st <= dr)
{
mid = (st + dr) / 2;
if (a[mid] < x)
st = mid + 1;
else
dr = mid - 1;
}
out << st + 1 << endl;
}
}
int main()
{
int m, b, in, x;
fin >> n;
for (int i = 0; i < n; i++)
{
fin >> b;
a.push_back(b);
}
fin >> m;
for (int i = 0; i < m; i++)
{
fin >> in >> x;
intrebare(in, x);
}
return 0;
}