Cod sursa(job #2784914)

Utilizator Andrei_TudorAndrei Tudor Andrei_Tudor Data 17 octombrie 2021 18:11:41
Problema Farfurii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream cin("farfurii.in");
ofstream cout("farfurii.out");
int main () {
    int n, k, m = 0;
    cin >> n >> k;
    while (m * (m + 1) / 2 <= k) {
        m ++;
    }
    m --;
    if (k - m * (m + 1) / 2 == 0) {
        for (int i = 1; i <= n - m - 1; i ++) {
            cout << i << " ";
        }
        for (int i = n; i >= n - m; i --) {
            cout << i << " ";
        }
    }
    else {
        int r = k - m * (m + 1) / 2;
        for (int i = 1; i <= min(n - m, n - m - r - 1); i ++) {
            cout << i << " ";
        }
        if (min(n - m, n - m - r) == n - m - r) {
            cout << n << " ";
        }
        for (int i = min(n - m, n - m - r); i <= n - m - 1; i ++) {
            if (i == n - m - r - 1) {
                cout << n << " ";
                continue;
            }
            cout << i << " ";
        }
        for (int i = n - 1; i >= n - m; i --) {
            cout << i << " ";
        }
    }
    return 0;
}