Cod sursa(job #2144581)

Utilizator D3XT3RY0NuTCirstea Ioan Cristian D3XT3RY0NuT Data 26 februarie 2018 20:19:53
Problema Farfurii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int i, N, K, sum, reper, mij;
int v[100009];

int main(){
    f >> N >> K;
    while (sum < K){
        sum += reper;
        reper++;
    }
    for (i = 1; i <= N; i++)
        v[i] = i;
    reper--;
    sum = 0;
    mij = N - reper / 2;
    while(sum != K){
        if (mij > N){
            swap(v[N], v[N - 1]);
            sum++;
            mij = N - reper / 2;
        }
        for (i = mij; i >= reper + mij - N + reper / 2 && sum != K; i--){
            swap(v[i], v[i - 1]);
            sum++;
        }
        mij++;
    }
    for (i = 1; i <= N; i++)
        g << v[i] << " ";
    g << "\n";

    return 0;
}