Cod sursa(job #308195)
| Utilizator | Data | 26 aprilie 2009 12:54:03 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <iostream>
FILE *f = fopen("farfurii.in", "r"), *g = fopen("farfurii.out", "w");
using namespace std;
__int64 N, K;
int main()
{
fscanf(f, "%I64d %I64d", &N, &K);
fclose(f);
__int64 M = 1;
while (((M * (M - 1)) / 2) < K)
{
M++;
}
M--;
__int64 P = N - ((M * (M + 1)) / 2 - K);
for (__int64 i = 1; i < N - M; ++i)
{
fprintf(g, "%I64d ", i);
}
fprintf(g, "%I64d ", P);
for (__int64 i = N; i >= N - M; --i)
{
if (i != P)
fprintf(g, "%I64d ", i);
}
fclose(g);
return 0;
}