Mai intai trebuie sa te autentifici.
Cod sursa(job #1511053)
Utilizator | Data | 25 octombrie 2015 22:59:36 | |
---|---|---|---|
Problema | Farfurii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.04 kb |
#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
bool c[100005];
int main()
{
freopen("farfurii.in", "r", stdin);
FILE *g = fopen("farfurii.out", "w");
ull n, k;
cin >> n >> k;
ull last = 1;
for(int i = 1; i <= n; i ++) {
ull j = n - i - 1;
ull nxt = j * (j + 1) / 2;
if(nxt >= k) {
fprintf(g, "%lld ", last);
c[last] = true;
while(c[last])
last ++;
}
else {
ull j = k - nxt;
ull in = last;
while(j) {
if(!c[last])
j --;
last ++;
while(c[last])
last ++;
}
fprintf(g, "%lld ", last);
c[last] = true;
k = nxt;
last = in;
i = n;
}
}
for(int j = n; j >= last; j --)
if(!c[j])
fprintf(g, "%lld ", j);
fprintf(g, "\n");
return 0;
}