Cod sursa(job #1893682)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 25 februarie 2017 21:30:10
Problema Farfurii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,k,r,s;

int main()
{
    f >> n >> k;
    for(int i = 1; i <= n; ++i){
        if(i * (i - 1) / 2 >= k && (i - 1) * (i - 2) / 2 < k){
            r = i;
            s = i * (i - 1) / 2;
            break;
        }
    }
    if(k == 0){
        for(int i = 1; i <= n; ++i)
            g << i << ' ';
        return 0;
    }
    if(k == 1){
        for(int i = 1; i <= n - 2; ++i)
            g << i << ' ';
        g << n << ' ' << n - 1 << '\n';
        return 0;
    }
    if(k == s){
        for(int i = n; i >= 1; --i)
            g << i << ' ';
        return 0;
    }
    for(int i = 1; i <= n - r; ++i)
        g << i << ' ' ;

    int rest = s - k;

    g << n - rest << ' ';

    for(int i = n; i >= n - r + 1; --i){
        if(i != n - rest)
            g << i << ' ';
    }
    return 0;
}