Pagini recente » Cod sursa (job #486416) | Cod sursa (job #53529) | Cod sursa (job #1695619) | Cod sursa (job #927210) | Cod sursa (job #471578)
Cod sursa(job #471578)
#include <fstream>
using namespace std;
const int SIZE = 1000001;
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
void Read();
void Solve();
void Write();
int n;
int dif, a[SIZE], b[SIZE];
int main()
{
Read();
Solve();
Write();
}
void Read()
{
fin >> n;
}
void Solve()
{
if (n % 4 == 0)
{
dif = 0;
for (int i = 1; n - i > i; i += 2)
{
a[++a[0]] = i, a[++a[0]] = n - i;
if (i + 1 < n - (i + 1))
b[++b[0]] = i + 1, b[++b[0]] = n - (i + 1);
else
b[++b[0]] = i + 1;
}
}
if (n % 4 == 1)
{
dif = 1;
a[++a[0]] = 1;
for (int i = 2; n - i > i; i += 2)
{
a[++a[0]] = i, a[++a[0]] = n - i;
if (i + 1 < n - (i + 1))
b[++b[0]] = i + 1, b[++b[0]] = n - (i + 1);
else
b[++b[0]] = i + 1;
}
}
if (n % 4 == 2)
{
dif = 1;
a[++a[0]] = 1;
b[++b[0]] = 2;
for (int i = 3; n - i > i; i += 2)
{
a[++a[0]] = i, a[++a[0]] = n - i;
if (i + 1 < n - (i + 1))
b[++b[0]] = i + 1, b[++b[0]] = n - (i + 1);
else
b[++b[0]] = i + 1;
}
}
if (n % 4 == 3)
{
dif = 0;
a[++a[0]] = 1, a[++a[0]] = 2;
b[++b[0]] = 3;
for (int i = 4; n - i > i; i += 2)
{
a[++a[0]] = i, a[++a[0]] = n - i;
if (i + 1 < n - (i + 1))
b[++b[0]] = i + 1, b[++b[0]] = n - (i + 1);
else
b[++b[0]] = i + 1;
}
}
}
void Write()
{
fout << dif << '\n';
fout << a[0] << '\n';
for (int i = 1; i <= a[0]; ++i)
fout << a[i] << ' ';
fout << '\n';
fout << b[0] << '\n';
for (int i = 1; i <= b[0]; ++i)
fout << b[i] << ' ';
fout << '\n';
}