Pagini recente » Cod sursa (job #1349710) | Cod sursa (job #568197) | Cod sursa (job #1701308) | Cod sursa (job #410623) | Cod sursa (job #2544011)
#include <fstream>
#include <string>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <set>
#include <map>
#include <string.h>
#include <queue>
#include <stack>
#define INF 0x3f3f3f3f
using namespace std;
#ifdef DEBUG
string name = "data";
#else
string name = "multimi2";
#endif
ifstream fin(name + ".in");
ofstream fout(name + ".out");
int64_t n;
int main() {
fin >> n;
int64_t s = n * (n + 1) / 2;
int ss = (s % 2) == 1;
s /= 2;
int64_t s2 = 0;
vector<int> sol;
int last = 0;
for (int i = 1; i <= n; ++i) {
s2 += i;
last = i;
sol.push_back(i);
if (s2 >= s) {
break;
}
}
int toIgnore = 0;
int64_t dif = abs(s - s2);
if (dif > 1) {
toIgnore = dif;
}
if (dif == 1 && ss == 0) {
toIgnore = 1;
}
fout << ss << "\n";
fout << (sol.size() - (toIgnore != 0)) << "\n";
for (auto x: sol) {
if (x != toIgnore) {
fout << x << " ";
}
}
fout << "\n";
fout << (n - last + (toIgnore != 0)) << "\n";
if (toIgnore != 0) {
fout << toIgnore << " ";
}
for (int i = last + 1; i <= n; ++i) {
fout << i << " ";
}
return 0;
}