Pagini recente » Cod sursa (job #2879271) | Cod sursa (job #2877996) | Cod sursa (job #366161) | Cod sursa (job #2757504) | Cod sursa (job #2624520)
#include <iostream>
#include <fstream>
std :: ifstream fin ("farfurii.in");
std :: ofstream fout ("farfurii.out");
int main() {
int n, m, nr = 1;
fin >> n >> m;
while (nr * (nr + 1) / 2 <= m) nr++;
/// nr este numarul pt care suma de la 1 la numar este cea mai mica mai mare decat numarul de tacamuri
/// nr de inversiuni care e mai mare decat tacamurile
for (int i = 1; i <= n - nr - 1; ++i) {
fout << i << " ";
}
/// nr de farfurii fara a pune niciun tacam jos
fout << n + m - nr * (nr + 1) / 2 << " ";
/// numarul adus in fata
/// se scade diferenta de care e nevoie pana la m
for (int i = n; i >= n - nr ; --i) {
if (i != n + m - nr * (nr + 1) / 2) fout << i << " ";
}
/// restul de farfurii in ordine inversa
return 0;
}