Cod sursa(job #2778935)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 2 octombrie 2021 13:28:17
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
using namespace std;
ifstream F("farfurii.in");
ofstream G("farfurii.out");
int n,t,p[100001],r,l;
long long k,i;
int main()
{
	F>>n>>k;
	for(i=1;i<=n&&!r&&!l;++i)
        if(i*(i-1)/2==k)
            r=i;
        else if(i*(i-1)/2<k&&k<i*(i+1)/2)
            l=i;
	if(r) {
		for(i=1;i<=n-r;++i)
            p[i]=i;
      	for(t=n,i=n-r+1;i<=n;++i)
            p[i]=t--;
	} else {
		for(i=1;i<n-l;++i)
            p[i]=i;
      	p[n-l]=n+k-l*(l+1)/2;
      	for(t=n,i=n-l+1;i<=n;p[i++]=t--)
            if(t==p[n-l])
                --t;
	}
	for(i=1;i<=n;++i)
      	G<<p[i]<<" ";
    return 0;
}