184472025-10-22 20:20:00ubormaciDíjazás több helyezettnekcpp17Hibás válasz 5/80600ms552 KiB
#include <iostream>
#include <algorithm> // for sort, mainly
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <array>
#include <string>
#include <cstdio>
#include <iterator>
#include <unordered_set>
#include <cstdint> // for int64_t, int32_t, etc
#include <queue>
#include <stack>
#include <deque>
#include <numeric> // gcd, lcm
#include <fstream>
#include <bitset> // for bitset
#include <iomanip>
#include <cassert> // for set with custom ordering
#include <type_traits> // for set with custom ordering
#include <utility> // for swap, forward, etc
using namespace std;

#pragma GCC optimize("O2")
// #pragma GCC optimize("O1","O2","O3","Ofast","unroll-loops")
//#pragma GCC target("sse","sse2","sse3","sse4.1","sse4.2","avx","avx2","fma")

template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cout << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cout << ' ' << H; dbg_out(T...); }
#ifdef LOCAL
#define dbg(...) cout << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#else
#define dbg(...)
#endif

/*
 *
 * notes:
 *
 * int64_t
 * stoi(string s) -> string to int
 * to_string() -> int (or else) to string
 *
 * vector declaration:
 * vector<ll> v(n, 0)
 * vector<vector<ll>> v(n, vector<ll>(n, 0));
 *
 * {if statement} ? {truth value} : {false value}
 *
 * set lower bound/upper bound:
 * 	// . . . m1 . . . d . . . . m2
 *    auto m1_it = b.lower_bound(d);
 *    advance(m1_it, -1);
 *    m1 = *m1_it;
 *	m2 = *b.upper_bound(d);
 *
 * #ifdef LOCAL
 *    freopen("in.txt","r",stdin);
 *    freopen("out.txt","w",stdout);
 * #endif
 *
 * constexpr auto lcm(auto x, auto... xs)
 * {
 *	return ((x = std::lcm(x, xs)), ...);
 * }
 *
 * std::gcd(int a, int b)
 *
 * cout << setprecision(n);
 *
 * set with custom ordering
 * set<ll, decltype(&cmp)> qu(cmp);
 *
 */

typedef int64_t ll;

vector<vector<ll>> sol;

ll gauss(ll n) {

    return (n * (n+1))/2;

}   

ll getsum(ll a, ll b) {

    return gauss(b) - gauss(a-1);

}

void proc(ll curr, vector<ll> v, ll h) {

    // h = moneyleft

    if(curr == 0) {
        v[0] = h;
        sol.push_back(v);
        return;
    }else{

        for(ll i = v[curr+1]+1; i <= h; i++) {

            ll rem = h - i; 
            ll needed = (i+1, i + curr);
            if(needed > rem) {
                break;
            }

            v[curr] = i;
            proc(curr - 1, v, rem);

        }

    }

}

void solve() {

    ll n, w;
    cin >> n >> w;

    vector<ll> v(n+1, 0);
    proc(n-1, v, w);

    for(const auto & s : sol) {
        for(const auto & x : s) {
            if(x == 0) {
                break;
            }
            cout << x << " ";
        }
        cout << "\n";
    }

}

int main()
{
    std::ios_base::sync_with_stdio(false);
    //cin.tie(nullptr);
    //cout.tie(nullptr);

    solve();

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz3ms316 KiB
subtask25/5
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva1ms316 KiB
6Elfogadva1ms368 KiB
7Elfogadva1ms316 KiB
subtask30/5
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Hibás válasz1ms316 KiB
11Hibás válasz1ms316 KiB
12Hibás válasz1ms316 KiB
subtask40/15
13Elfogadva1ms316 KiB
14Hibás válasz1ms316 KiB
15Hibás válasz1ms500 KiB
16Hibás válasz1ms316 KiB
17Hibás válasz1ms316 KiB
subtask50/15
18Elfogadva1ms316 KiB
19Hibás válasz1ms316 KiB
20Hibás válasz1ms316 KiB
21Hibás válasz2ms508 KiB
22Hibás válasz1ms316 KiB
subtask60/15
23Elfogadva1ms316 KiB
24Hibás válasz3ms316 KiB
25Elfogadva1ms316 KiB
26Hibás válasz1ms316 KiB
27Hibás válasz1ms316 KiB
28Hibás válasz2ms508 KiB
29Hibás válasz1ms316 KiB
30Hibás válasz2ms500 KiB
31Hibás válasz2ms520 KiB
32Elfogadva1ms316 KiB
33Hibás válasz2ms508 KiB
34Hibás válasz4ms316 KiB
35Elfogadva2ms500 KiB
36Hibás válasz3ms316 KiB
37Hibás válasz7ms504 KiB
38Hibás válasz14ms548 KiB
39Hibás válasz13ms328 KiB
subtask70/25
40Elfogadva1ms316 KiB
41Hibás válasz3ms316 KiB
42Elfogadva1ms316 KiB
43Elfogadva1ms316 KiB
44Elfogadva1ms316 KiB
45Elfogadva1ms368 KiB
46Elfogadva1ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Hibás válasz1ms316 KiB
50Hibás válasz1ms316 KiB
51Hibás válasz1ms316 KiB
52Elfogadva1ms316 KiB
53Hibás válasz1ms316 KiB
54Hibás válasz1ms500 KiB
55Hibás válasz1ms316 KiB
56Hibás válasz1ms316 KiB
57Elfogadva1ms316 KiB
58Hibás válasz1ms316 KiB
59Hibás válasz1ms316 KiB
60Hibás válasz2ms508 KiB
61Hibás válasz1ms316 KiB
62Hibás válasz2ms500 KiB
63Hibás válasz2ms520 KiB
64Elfogadva1ms316 KiB
65Hibás válasz2ms508 KiB
66Hibás válasz4ms316 KiB
67Elfogadva2ms500 KiB
68Hibás válasz3ms316 KiB
69Hibás válasz7ms504 KiB
70Hibás válasz14ms548 KiB
71Hibás válasz13ms328 KiB
72Hibás válasz266ms524 KiB
73Hibás válasz123ms424 KiB
74Időlimit túllépés600ms496 KiB
75Elfogadva202ms420 KiB
76Időlimit túllépés584ms316 KiB
77Időlimit túllépés570ms552 KiB
78Időlimit túllépés582ms316 KiB
79Időlimit túllépés582ms316 KiB
80Időlimit túllépés583ms316 KiB
81Időlimit túllépés583ms316 KiB