Pagini recente » Cod sursa (job #2128064) | Cod sursa (job #3179568) | Istoria paginii runda/baraj.juniori.shumen.2013 | Cod sursa (job #1117828) | Cod sursa (job #2473731)
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 100000 + 7;
int n;
bool e[N];
int aib[N];
void ins(int x)
{
if (e[x])
return;
e[x] = 1;
for (int i = x; i < N; i += i & (-i))
aib[i] += 1;
}
int getk(int k)
{
int res = 0, cur = 0;
for (int step = (1 << 17); step; step /= 2)
if (res + step < N && aib[res + step] + cur < k)
{
res += step;
cur += aib[res];
}
res++;
return res;
}
int main()
{
freopen ("nums.in", "r", stdin);
freopen ("nums.out", "w", stdout);
int q;
cin >> q;
while (q--)
{
int t, x;
cin >> t >> x;
if (t == 1)
ins(x);
else
cout << getk(x) << "\n";
}
return 0;
}