Cod sursa(job #2098536)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 2 ianuarie 2018 22:50:15
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#define VAL 100005

using namespace std;

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

long long N, K, i, j;
long long v[VAL], poz;

int main()
{
    fin >> N >> K;
    if (K==0)
    {
        for (i=1; i<=N; i++)
          fout << i << " ";
        return 0;
    }
    else
    {
        for (i=1; i<=N; i++)
          if (i*(i-1) / 2>K)
            break;
        poz=N-i;
        for (j=N; j>N-i; j--)
          v[j]=N-i+(N-j)+1;
        for (j=1; j<=N-i; j++)
          v[j]=j;
        i=i*(i-1) / 2;
        i-=K;
        poz+=i+1;
        for (j=1; j<=i; j++)
        {
            swap(v[poz], v[poz-1]);
            poz--;
        }
        for (i=1; i<=N; i++)
          fout << v[i] << " ";
    }
    fin.close();
    fout.close();
    return 0;
}