結果
問題 | No.3030 Kruskal-Katona |
ユーザー |
![]() |
提出日時 | 2025-02-21 21:50:14 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 2,224 bytes |
コンパイル時間 | 3,188 ms |
コンパイル使用メモリ | 232,880 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2025-02-21 21:50:27 |
合計ジャッジ時間 | 3,639 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
#include <cassert>#include <cctype>#include <cfloat>#include <climits>#include <cmath>#include <csetjmp>#include <csignal>#include <cstdarg>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <cfenv>#include <cinttypes>#include <cstdint>#include <algorithm>#include <bitset>#include <complex>#include <deque>#include <exception>#include <fstream>#include <functional>#include <iomanip>#include <ios>#include <iosfwd>#include <iostream>#include <istream>#include <iterator>#include <limits>#include <list>#include <locale>#include <map>#include <memory>#include <new>#include <numeric>#include <ostream>#include <queue>#include <set>#include <sstream>#include <stack>#include <stdexcept>#include <streambuf>#include <string>#include <typeinfo>#include <utility>#include <valarray>#include <vector>#include <array>#include <chrono>#include <forward_list>#include <initializer_list>#include <random>#include <ratio>#include <regex>#include <system_error>#include <tuple>#include <type_traits>#include <unordered_map>#include <unordered_set>#include <shared_mutex>using namespace std;using ll = long long;using ull = unsigned long long;using ld = long double;constexpr ll INF = 2e18;constexpr int inf = 2e8;//ライブラリを貼るところ//ここまでvector<ll> ans;int t = 0;void f(ll cur, ll i){if(t == 1) return;if(cur == 0){for(auto N: ans) cout << N << " ";cout << "\n";t = 1;return;}if(i == 0) return;int p = i;ll g = 1;while(g <= cur){++p;g *= p;g /= p - i;}for(int j = p; j > i; --j){g *= j - i;g /= j;if(ans.size() != 0) if(ans[ans.size() - 1] <= j - 1) continue;ans.push_back(j - 1);f(cur - g, i - 1);ans.pop_back();}}void solve(){ll N; cin >> N;int i; cin >> i;if(i == 1){cout << N << "\n";return;}f(N, i);}int main(void){cin.tie(nullptr);ios::sync_with_stdio(false);cout << setprecision(16) << fixed;int T = 1;for(int i = 0; i < T; ++i) solve();}