Cod sursa(job #3218925)

Utilizator Anul2024Anul2024 Anul2024 Data 28 martie 2024 15:52:45
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
ifstream fin ("farfurii.in");
ofstream fout ("farfurii.out");
int dif,poz,ok,n,st,dr,i,v[100001];
long long nr,m;
int main()
{
    fin>>n>>nr;
    st=1;
    dr=n;
    for (i=1; i<=n; i++)
    {
        m=n-i;
        if (m*(m-1)/2<nr&&ok==0)
        {
            ok=1;
            dif=m*(m+1)/2-nr;
        }
        if (ok==1)
            v[i]=dr--;
        else
            v[i]=st++;
    }
    for (i=1; i<=n; i++)
    {
        if (v[i]==n-dif)
        {
            poz=i;
            break;
        }
    }
    while (dif>0)
    {
        swap (v[poz],v[poz-1]);
        poz--;
        dif--;
    }
    for (i=1; i<=n; i++)
        fout<<v[i]<<" ";
    return 0;
}