Pagini recente » Cod sursa (job #48164) | Cod sursa (job #53083) | Cod sursa (job #1165465) | Cod sursa (job #829226) | Cod sursa (job #471583)
Cod sursa(job #471583)
#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, aux = 0; n - aux > i; i += 2, aux += 2)
a[++a[0]] = i, a[++a[0]] = n - aux;
for (int i = 2, aux = 1; n - aux > i; i += 2, aux += 2)
b[++b[0]] = i, b[++b[0]] = n - aux;
}
if (n % 4 == 1)
{
dif = 1;
a[++a[0]] = 1;
for (int i = 2, aux = 0; n - aux > i; i += 2, aux += 2)
a[++a[0]] = i, a[++a[0]] = n - aux;
for (int i = 3, aux = 1; n - aux > i; i += 2, aux += 2)
b[++b[0]] = i, b[++b[0]] = n - aux;
}
if (n % 4 == 2)
{
dif = 1;
a[++a[0]] = 1;
b[++b[0]] = 2;
for (int i = 3, aux = 0; n - aux > i; i += 2, aux += 2)
a[++a[0]] = i, a[++a[0]] = n - aux;
for (int i = 4, aux = 1; n - aux > i; i += 2, aux += 2)
b[++b[0]] = i, b[++b[0]] = n - aux;
}
if (n % 4 == 3)
{
dif = 0;
a[++a[0]] = 1, a[++a[0]] = 2;
b[++b[0]] = 3;
for (int i = 4, aux = 0; n - aux > i; i += 2, aux += 2)
a[++a[0]] = i, a[++a[0]] = n - aux;
for (int i = 5, aux = 1; n - aux > i; i += 2, aux += 2)
b[++b[0]] = i, b[++b[0]] = n - aux;
}
}
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';
}