Cod sursa(job #109053)
Utilizator | Data | 24 noiembrie 2007 16:04:52 | |
---|---|---|---|
Problema | Farfurii | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
int main() {
freopen("farfurii.in","rt",stdin);
freopen("farfurii.out","wt",stdout);
int n;
long long k;
scanf("%d %lld",&n,&k);
int m;
long long rr;
for (m = 0, rr = ((long long)m*(m+1))/2; rr < k; ++m, rr = ((long long)m*(m+1))/2);
for (int i = 1; i<m-1; ++i) printf("%d ",i);
int x;
if (rr == k) {
x = -1;
} else {
x = n-(rr - k);
printf("%d ",x);
}
for (int i = n; i>=m-1; --i)
if (i != x) printf("%d ",i);
printf("\n");
return 0;
}