Pagini recente » Diferente pentru problema/compresie intre reviziile 16 si 28 | Cod sursa (job #1150829) | Cod sursa (job #2230062) | Diferente pentru problema/compresie intre reviziile 26 si 28 | Cod sursa (job #881539)
Cod sursa(job #881539)
#include<fstream>
#include<math.h>
#define MAX_N 100000
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int main()
{
int N,i,sol[MAX_N],aux;
long long K;
fin>>N>>K;
double c = (1 + sqrt(1+8*(double)K))/2;
long long m = (long long)c;
for (int i = 1; i <= N - m; i++)
sol[i] = i;
for (int i = N - m + 1, aux = N; i <= N; i++)
sol[i] = aux--;
K -= m * (m - 1) / 2;
for (int i = N; i && K; i--, K--) {
sol[i]--;
sol[N - m]++;}
for (int i = 1; i <= N; i++)
fout<<sol[i]<<" ";
return 0;
}