Pagini recente » Cod sursa (job #267443) | Cod sursa (job #1786251) | Cod sursa (job #1634451) | Cod sursa (job #1562599) | Cod sursa (job #2570610)
#include <bits/stdc++.h>
#define ll unsigned long long
#define in ios_base::sync_with_stdio(0); fin.tie(NULL); fout.tie(NULL);
#define out return 0;
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n, m, i, x, task, v[100000];
int main()
{
in
fin >> n;
for (i = 1; i <= n; ++i)
fin >> v[i];
fin >> m;
while (m--)
{
fin >> task >> x;
int st = 1, dr = n, sol = -1;
if (task == 0 || task == 1)
{
while (st <= dr)
{
int mid = st + (dr - st) / 2;
if (v[mid] <= x)
{
sol = mid;
st = mid + 1;
}
else
dr = mid - 1;
}
if (task == 0)
{
if (v[sol] == x) fout << sol << "\n";
else fout << -1 << "\n";
}
if (task == 1)
fout << sol << "\n";
}
if (task == 2)
{
while (st <= dr)
{
int mid = st + (dr - st) / 2;
if (v[mid] >= x)
{
sol = mid;
dr = mid - 1;
}
else
st = mid + 1;
}
fout << sol << "\n";
}
}
out
}