Cod sursa(job #2776664)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 20 septembrie 2021 17:13:55
Problema Farfurii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("farfurii.in");
ofstream out("farfurii.out");

using ll = long long;

const int maxN = (int)1e5;

int n;

ll k;

int ans[maxN + 5];

int main() {
  in >> n >> k;
  int pos = n;
  for (int i = 1; i <= n; i++) {
    ll inv = (ll)((ll)1 * i * (i - 1) / (ll)2);
    if (inv >= k) {
      pos = i;
      break;
    }
  }
  for (int i = 1; i <= n; i++) {
    ans[i] = i;
  }
  ll inv = (ll)((ll)1 * pos * (pos - 1) / (ll)2);
  ll left = n - (inv - k);
  reverse(ans + n - pos + 1, ans + n + 1);
  for (int i = 1; i < n - pos + 1; i++) {
    out << ans[i] << " ";
  }
  out << left << " ";
  for (int i = n - pos + 1; i <= n; i++) {
    if (ans[i] != left) {
      out << ans[i] << " ";
    }
  }
  return 0;
}