Cod sursa(job #2044187)

Utilizator LizaSzabo Liza Liza Data 20 octombrie 2017 23:55:56
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
const int NMax=100005;
int Sol[NMax],N,K,S;

int main()
{
        fin>>N>>K;
        int i=1;

        while(S<K)
        {
            S=S+i;
            ++i;
        }

        for(int j=1;j<=N-i;++j)
        {
            fout<<j<<" ";
        }

        for(int j=N-i+1;j<=N;++j)
        {
            Sol[j]=2*N-j+1-i;
        }

        int dif=S-K;
        int j=N-i+1;

        while(dif>=i)
        {
            int x=Sol[N];
            for(int l=N;l>j;--l)
            {
                Sol[l]=Sol[l-1];
            }
            Sol[j]=x;
            ++j;
            dif=dif-i;
        }

            int x=Sol[j+dif];
            for(int l=j+dif;l>j;--l)
                {
                    Sol[l]=Sol[l-1];
                }
                Sol[j]=x;


        for(int h=N-i+1;h<=N;++h)
            fout<<Sol[h]<<" ";
        fout<<"\n";
    return 0;
}