結果
問題 |
No.2118 遺伝的有限集合の数え上げ
|
ユーザー |
|
提出日時 | 2022-11-18 21:10:16 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 899 bytes |
コンパイル時間 | 2,044 ms |
コンパイル使用メモリ | 198,416 KB |
最終ジャッジ日時 | 2025-02-08 21:19:50 |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 37 |
ソースコード
#include <bits/stdc++.h> #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(x) std::begin(x), std::end(x) using namespace std; using ll = long long; void opvec1(vector<int> &vec); void opvec2(vector<vector<int>> &vec); void opset(set<int> &S); int main() { int N; cin >> N; string ans =""; function<void(int)> f = [&](int n) { ans += '{'; bitset<20> bits(n); bool in = false; rep(i, 20) { if (bits.test(i)) { if (in) ans += ','; f(i); in = true; } } ans += '}'; }; f(N); cout << ans << endl; } // void opvec1(vector<int> &vec) { rep(i, vec.size()) cout << vec[i] << " "; cout << endl; } void opvec2(vector<vector<int>> &vec) { rep(i, vec.size()) { rep(j, vec[0].size()) cout << vec[i][j] << " "; cout << endl; } } void opset(set<int> &S) { for (auto s: S) cout << s << " "; cout << endl; }