Pagini recente » Cod sursa (job #1875645) | Istoria paginii runda/hc_round9/clasament | Cod sursa (job #1255748) | Cod sursa (job #2221944) | Cod sursa (job #1001769)
#include<stdio.h>
#include<vector>
using namespace std;
vector<int> a;
int n, m;
int Ap[100007];
int main(){
freopen("farfurii.in", "r", stdin);
freopen("farfurii.out", "w", stdout);
scanf("%d %d", &n, &m);
int Sum;
for(Sum = 1; Sum * (Sum + 1) / 2 <= m; ++ Sum);
if(Sum * (Sum + 1) / 2 > m)
-- Sum;
m -= (Sum * (Sum + 1)) / 2;
if(m > 0){
for(int i = 1; i <= n - Sum - 2; ++ i)
a.push_back(i), Ap[i] = 1;
a.push_back(n - Sum + m - 1);
Ap[n - Sum + m - 1] = 1;
for(int i = n; i >= n - Sum - m; -- i)
if(Ap[i] == 0)
a.push_back(i);
}
else{
for(int i = 1; i < n - Sum; ++ i)
a.push_back(i);
for(int i = n; i >= n - Sum; -- i)
a.push_back(i);
}
for(int i = 0; i < a.size(); ++ i)
printf("%d ", a[i]);
return 0;
}