Cod sursa(job #2107825)
| Utilizator | Data | 17 ianuarie 2018 18:51:15 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <iostream>
#include <cstdio>
#include <cassert>
using namespace std;
int main() {
assert(freopen("farfurii.in", "r", stdin));
assert(freopen("farfurii.out", "w", stdout));
int N, K;
cin >> N >> K;
int S = 1;
while (S * (S - 1) / 2 < K)
++S;
int diff = S * (S - 1) / 2 - K;
int swap_value = N - diff;
S = N - S;
for (int i = 1; i <= S; ++i)
printf("%d ", i);
printf("%d ", swap_value);
for (int i = N; i > S; --i)
if (i != swap_value)
printf("%d ", i);
printf("\n");
return 0;
}