Cod sursa(job #2530088)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 24 ianuarie 2020 13:16:49
Problema Farfurii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include<fstream>
#define N 200005
using namespace std;

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

int a[N];

int n,m;

//1 2 7 6 5 4 3

void print()
{
    int i;
    for(i=1;i<=n;++i)
        fout<<a[i]<<" ";
}

int main()
{
    int i,sum,x,poz;

    fin>>n>>m;
    i=1;
    while(i*(i-1)/2<=m)
        i++;

    sum=i;
    //inversam ultimele sum caractere
    for(i=1;i<=n-sum;++i)
        a[i]=i;
    x = n;
    poz = n - sum + 1;
    for(i=n-sum+1;i<=n;++i)
        a[i]=x--;

    //print();

    sum = sum * (sum - 1) / 2;


    if(sum > m)//trebuie sa schimbam iar ultimul
    {
        sum = sum - m;
        //il mut la stanga pe elem de pe la sum la poz
        sum=sum + poz;
        for(i = sum; i > poz; --i)
            swap(a[i],a[i-1]);

    }


    print();

    return 0;
}