Pagini recente »
Cod sursă (job #131329)
|
Cod sursă (job #547067)
|
Monitorul de evaluare
|
Monitorul de evaluare
|
Cod sursă (job #686012)
Cod sursă (job
#686012)
/***
* ███╗ ███╗ ██████╗ ██████╗ █████╗ ██████╗ ██╗██╗ ██╗████████╗██╗ ██╗██████╗ ██████╗ ██████╗
* ████╗ ████║██╔═══██╗██╔══██╗██╔══██╗██╔══██╗██║██║ ██║╚══██╔══╝██║ ██║██╔══██╗██╔═══██╗██╔══██╗
* ██╔████╔██║██║ ██║██████╔╝███████║██████╔╝██║██║ ██║ ██║ ██║ ██║██║ ██║██║ ██║██████╔╝
* ██║╚██╔╝██║██║ ██║██╔══██╗██╔══██║██╔══██╗██║██║ ██║ ██║ ██║ ██║██║ ██║██║ ██║██╔══██╗
* ██║ ╚═╝ ██║╚██████╔╝██║ ██║██x║ ██║██║ ██║██║╚██████╔╝██╗██║ ╚██████╔╝██████╔╝╚██████╔╝██║ ██║
* ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
*
*/
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
using namespace std;
ifstream fin("arbperm.in");
ofstream fout("arbperm.out");
#define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
void debug(vector<int> v)
{
for(int i = 0;i < v.size();i++) cout << v[i] << ' ';
cout << endl;
}
int firstDigit(int n)
{
while (n >= 10) n /= 10;
return n;
}
string decToBin(int decimal, int sz)
{
string ans;
int it = 0;
while(decimal)
{
ans.push_back(decimal % 2 + '0');
decimal /= 2;
}
reverse(ans.begin(), ans.end());
while(ans.size() < sz) ans.insert(ans.begin(), '0');
return ans;
}
vector<int> b;
vector<int> v;
int n, k;
void nextP()
{
for(int i = 0;i < b.size();i++)
{
if(b[i] == b.size())
{
if(i < b.size() - 1)
{
swap(b[i], b[i + 1]);
return;
}
else
{
b.pop_back();
nextP();
b.insert(b.begin(), b.size() + 1);
return;
}
}
}
}
int main()
{
fin >> n >> k;
v.resize(n);
for(int i = 0;i < n;fin >> v[i++]);
int ppos = 0;
for(int i = 0;i < n;i++)
{
if(v[i] != n)
{
b.push_back(v[i]);
}
else ppos = i;
}
while(true)
{
//cout << "ppos: " << ppos << " b: ";
debug(b);
if(k <= n - ppos - 1)
{
ppos = ppos + k;
break;
}
else
{
k -= (n - ppos);
nextP();
ppos = 0;
}
}
b.insert(b.begin() + ppos, n);
for(int i = 0;i < n;i++) fout << b[i] << " ";
cout << endl;
}