Cod sursa(job #3133828)

Utilizator sara_ionescu21Ionescu Sara sara_ionescu21 Data 27 mai 2023 01:15:22
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;

ifstream fin("farfurii.in");
ofstream fout("farfurii.out");

typedef long long l;

l inv;

int farfurii[100005];

int main()
{
    int n;

    fin >> n;

    int pozitie = n - 1;
    
    fin >> inv;

    farfurii[n] = 1;

    while (inv >= (n - pozitie) && pozitie >= 1)
    {
        farfurii[pozitie] = farfurii[pozitie + 1] + 1;
        inv -= n - pozitie;
        pozitie--;
    }

    int maxi = farfurii[pozitie + 1];

    farfurii[pozitie] = farfurii[n - inv] + n - maxi - 1;
    
    for (int i = pozitie + 1; i <= n; i++)
        farfurii[i] += n - maxi;

    for (int i = n - inv + 1; i <= n; i++)
        farfurii[i]--;

    for (int i = 1; i < pozitie; i++)
        farfurii[i] = i;

    for (int i = 1; i <= n; i++)
        fout << farfurii[i] << ' ';

    return 0;
}