Pagini recente » Cod sursa (job #482394) | Cod sursa (job #2740417) | Cod sursa (job #1460244) | Cod sursa (job #1789518) | Cod sursa (job #2754224)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
using namespace std;
int n,k,nr,numar_special;
int main ()
{
cin>>n>>k;
if(n==1){
g<<1;
}
else{
nr=1;
while(nr*(nr+1)/2<=k){
nr++;
}
//nr maxim de numere ce pot fi puse descrescator(suma lui gauss)
if(nr*(nr-1)/2==k){
for(int i=1;i<=n-nr;i++){
g<<i<<" ";
}
for(int i=n;i>n-nr;i--){
g<<i<<" ";
}
}
else{
//k>nr maxim de numere ce pot fi puse descrescator
//trebuie sa punem un numar care sa fie mai mare decat fix k-nr*(nr-1)/2 numere din dreapta
for(int i=1;i<n-nr;i++){
g<<i<<" ";
}
numar_special=n-nr+k-(nr*(nr-1)/2);
g<<numar_special<<" ";
for(int i=n;i>=n-nr;i--){
if(i!=numar_special){//sa nu punem numarul special de 2 ori
g<<i<<" ";
}
}
}
}
}