Pagini recente » Cod sursa (job #645121) | Cod sursa (job #2396462) | Cod sursa (job #2324902) | Cod sursa (job #1240750) | Cod sursa (job #1161250)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n, i, j, x[100005], q, tipus, akt, poz;
int pos (int akt)
{
int p = 1, i=0;
while (p < n) p <<= 1;
while (p)
{
p >>= 1;
if (p+i <= n)
{
if (x[p+i] <= akt)
{
i += p;
}
}
}
return i;
}
int main()
{
f >> n;
for (i=1; i<=n; i++)
f >> x[i];
f >> q;
for (i=1; i<=q; i++)
{
f >> tipus >> akt;
if (!tipus)
{
poz = upper_bound (x+1, x+n+1, akt) - x-1;
if (x[poz] != akt) g << -1 << "\n";
else g << poz << "\n";
}
else if (tipus == 1)
{
g << upper_bound (x+1, x+n+1, akt) -x-1 << "\n";
}
else
{
poz = lower_bound (x+1, x+n+1, akt) - x;
g << poz << "\n";
}
}
}