Cod sursa(job #3245020)

Utilizator DunareTanasescu Luca-Ioan Dunare Data 26 septembrie 2024 23:59:19
Problema Farfurii Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
bool a[100001];
int main()
{
    int n,m,i;
    f>>n>>m;
    i=1;
    while(((n-i)*(n-i-1))/2>m&&i<=n)
    {
        g<<i<<' ';
        a[i]=1;
        i++;
    }
    while(i<=n&&m)
    {
        int j=-(((n-i)*(n-i+1))/2-n-m);

        while(j>=i&&m)
        {
            //g<<((n-i)*(n-i+1))/2-(n-j)<<'\n';
            if(a[j]==0&&((n-i)*(n-i+1))/2-(n-j)<=m)
            {
                 m-=((n-i)*(n-i+1))/2-(n-j);

                a[j]=1;
                g<<j<<' ';
                break;
            }
            if((((n-i)*(n-i+1))/2-(n-j/2))>m)j/=2;
           else j--;

        }
        i++;
    }
    for(int i=n;i>=1;i--)
        if(!a[i])g<<i<<' ';

    return 0;
}