Cod sursa(job #1136233)

Utilizator manutrutaEmanuel Truta manutruta Data 8 martie 2014 23:00:22
Problema Farfurii Scor 70
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAXN 100005

ifstream f("farfurii.in");
ofstream g("farfurii.out");

int n, k;
int a[MAXN], p[MAXN];

inline void swap(int &a, int &b) {
    a ^= b;
    b ^= a;
    a ^= b;
}

int main()
{
    f >> n >> k;
    for (int i = 1; i <= n; i++) {
        a[i] = i;
        p[i] = i;
    }

    int poz, x, poz2;
    for (int i = 1; i <= k; i++) {
        poz = p[n] - 1;
        x = a[poz];
        poz2 = p[x + 1];
        swap(a[poz], a[poz2]);
        swap(p[x], p[x + 1]);
    }

    for (int j = 1; j <= n; j++) {
        g << a[j] << ' ';
    }
    g << '\n';

    f.close();
    g.close();
    return 0;
}