Pagini recente » Cod sursa (job #1776306) | Cod sursa (job #1293965) | Cod sursa (job #2932364) | Cod sursa (job #1963596) | Cod sursa (job #2754230)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("farfurii.in");
ofstream g("farfurii.out");
using namespace std;
unsigned long long n,k,nr,numar_special;
int main ()
{
f>>n>>k;
if(n==1){
g<<1;
}
else{
if(k==0){
for(int i=1;i<=n;i++){
g<<i<<" ";
}
}
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<<" ";
}
}
}
}
}
}