Pagini recente » Album | Istoria paginii preoni-2008/clasament/runda-4/5-8 | Istoria paginii runda/cei_mici3 | Cod sursa (job #2553043) | Cod sursa (job #2783806)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
ifstream fin("nums.in");
ofstream fout("nums.out");
class cmp
{
public:
bool operator()(vector<int> a, vector<int> b)
{
if(a.size() == b.size())
{
for(int i = 0; i < (int)a.size(); ++i)
{
if(a[i] == b[i])
continue;
if(a[i] > b[i])
return 0;
else return 1;
}
}
return a.size() < b.size();
}
};
tree < vector<int>, null_type, cmp, rb_tree_tag, tree_order_statistics_node_update > ARB;
int main()
{
int n;
fin >> n;
for(int i = 1; i <= n; ++i)
{
int t;
fin >> t;
if(t == 1)
{
string val;
fin >> val;
vector<int> vec;
for(int j = 0; j < (int)val.size(); ++j)
vec.push_back(val[j] - '0');
ARB.insert(vec);
}
else {
int val;
fin >> val;
vector<int> rez = *ARB.find_by_order(val - 1);
for(auto it: rez)
fout << it;
fout << '\n';
}
}
return 0;
}