Pagini recente » Cod sursa (job #2786221) | Cod sursa (job #218165) | Cod sursa (job #1917182) | Cod sursa (job #2666070) | Cod sursa (job #2829370)
#include <iostream>
#include <fstream>
#define int long long
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
const int N = 1e5 + 1;
int v[N];
signed main(){
int n, k;
fin >> n >> k;
int folosite = 0;
for(int i = 1; i <= n; i++){
if(i * (i - 1) / 2 <= k && k <= (i + 1) * i / 2){
folosite = i + 1;
break;
}
}
for(int i = 1; i <= n - folosite; i++) v[i] = i;
for(int i = n - folosite + 1; i <= n; i++) v[i] = n - (i - n + folosite) + 1;
//swap(v[n - folosite + 1], v[n - folosite + 1 + (folosite * (folosite - 1) / 2 - k)]);
for(int i = 1; i <= n - folosite; i++) fout << v[i] << ' ';
fout << v[n - folosite + 1 + (folosite * (folosite - 1) / 2 - k)] << ' ';
int afisare = n;
for(int i = n - folosite + 2; i <= n; i++){
if(afisare == v[n - folosite + 1 + (folosite * (folosite - 1) / 2 - k)]) afisare--;
fout << afisare << ' ';
afisare--;
}
return 0;
}