Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- ll n, sh;
- ll a[20];
- ll gthua[20];
- void Vitri() {
- ll vt[20];
- for(int i = 1; i <= 12; i++)
- vt[i] = i;
- ll res = 1;
- for(int i = 1; i <= n; i++) {
- res += (vt[a[i]] - 1) * gthua[n-i];
- for(int j = (a[i]) + 1; j <= n; j++)
- vt[j]--;
- }
- cout << res << '\n';
- }
- void Hoanvi() {
- ll vt[20], kq[20];
- for(int i = 1; i <= n; i++)
- vt[i] = i;
- int t = 1, l = 0;
- for(int i = 1; i <= n; i++) {
- for(int j = 1; j <= n; j++)
- if (t + j * gthua[n-i] > sh) {
- l = j-1; break;
- }
- t += l*gthua[n-i];
- kq[i] = vt[l+1];
- for(int j = l+1; j <= n; j++)
- vt[j] = vt[j+1];
- }
- for(int i = 1; i <= n; i++)
- cout << kq[i] << ' ';
- }
- int main()
- {
- //freopen("SHHV.inp", "r", stdin);
- //freopen("SHHV.out", "w", stdout);
- ios_base::sync_with_stdio(false);
- cin.tie(NULL); cout.tie(NULL);
- ll x;
- n = 0;
- while(cin >> x) {
- n++;
- a[n] = x;
- }
- sh = a[n];
- a[n] = 0;
- n--;
- gthua[0] = 1;
- for(int i = 1; i <= n; i++)
- gthua[i] = gthua[i-1]*i;
- Vitri();
- Hoanvi();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment