Pagini recente » Cod sursa (job #987429) | Cod sursa (job #524688) | Cod sursa (job #1546237) | Cod sursa (job #1571393) | Cod sursa (job #2443618)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int Nmax = 100000 + 5;
int a[Nmax], n, m;
int main()
{
fin >> n;
for(int i = 1; i <= n; ++i)fin >> a[i];
fin >> m;
for(int i = 1, vr, x, lo, hi, sol = -1; i <= m; ++i)
{
lo = 1, hi = n;
fin >> vr >> x;
if(vr == 0)
{
while(lo <= hi)
{
int mid = lo + (hi - lo) / 2;
if(x < a[mid])hi = mid - 1;
else if(x > a[mid])lo = mid + 1;
else sol = mid, lo = mid + 1;
}
}
else if(vr == 1)
{
while(lo <= hi)
{
int mid = lo + (hi - lo) / 2;
if(x >= a[mid])lo = mid + 1, sol = mid;
else hi = mid - 1;
}
}
else
{
while(lo <= hi)
{
int mid = lo + (hi - lo) / 2;
if(x <= a[mid])hi = mid - 1, sol = mid;
else lo = mid + 1;
}
}
fout << sol << '\n';
}
return 0;
}