aboutsummaryrefslogtreecommitdiff
path: root/cses/TwoSets/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cses/TwoSets/main.cpp')
-rw-r--r--cses/TwoSets/main.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/cses/TwoSets/main.cpp b/cses/TwoSets/main.cpp
new file mode 100644
index 0000000..8c1aed0
--- /dev/null
+++ b/cses/TwoSets/main.cpp
@@ -0,0 +1,46 @@
+#include<bits/stdc++.h>
+
+using namespace std;
+
+typedef long long ll;
+
+int main () {
+ ios_base::sync_with_stdio(false);
+ cin.tie(NULL);
+ ll n;
+ cin >> n;
+ ll sum = (n * (n + 1)) / 2;
+ ll s = sum / 2;
+ set<int> vis;
+ vector<int> st2;
+ if (sum & 1) {
+ cout << "NO" << '\n';
+ } else {
+ cout << "YES" << '\n';
+ for (int i = n; i >= 1; --i) {
+ if (s - i > 0) {
+ s -= i;
+ vis.insert(i);
+ } else {
+ vis.insert(s);
+ s -= i;
+ break;
+ }
+ }
+ for (int i = 1; i <= n; ++i) {
+ if (!vis.count(i)) {
+ st2.push_back(i);
+ }
+ }
+ cout << vis.size() << '\n';
+ for (auto x : vis) {
+ cout << x << " ";
+ }
+ cout << '\n';
+ cout << st2.size() << '\n';
+ for (auto x : st2) {
+ cout << x << " ";
+ }
+ cout << '\n';
+ }
+}