Cod sursa(job #1136235)

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

using namespace std;

#define MAXN 100005

ifstream f("farfurii.in");
FILE* g = fopen("farfurii.out", "w");

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 i = 1; i <= n; i++) {
        fprintf(g, "%d ", a[i]);
    }
    fprintf(g, "\n");

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