Pagini recente » Cod sursa (job #2738262) | Cod sursa (job #2906032) | Cod sursa (job #710180) | Cod sursa (job #2908964) | Cod sursa (job #112129)
Cod sursa(job #112129)
#include <stdio.h>
#include <vector>
using namespace std;
#define pb push_back
int N;
vector<int> A, B;
int main(void)
{
freopen("multimi2.in", "rt", stdin);
freopen("multimi2.out", "wt", stdout);
int i, j, k;
scanf("%d ", &N);
if(N%4 == 0)
{
printf("0\n");
for(i = 1; i <= N; i++)
if(i%4 == 1 || i%4 == 0) A.pb(i);
else B.pb(i);
}
if(N%4 == 1)
{
printf("1\n");
for(A.pb(1), i = 2; i <= N; i++)
if((i-1)%4 == 1 || (i-1)%4 == 0) A.pb(i);
else B.pb(i);
}
if(N%4 == 2)
{
printf("1\n");
for(A.pb(1), B.pb(2), i = 3; i <= N; i++)
if((i-2)%4 == 1 || (i-2)%4 == 0) A.pb(i);
else B.pb(i);
}
if(N%4 == 3)
{
printf("0\n");
for(i = 4; i <= N; i++)
if((i-3)%4 == 1 || (i-3)%4 == 0) A.pb(i);
else B.pb(i);
A.pb(1), A.pb(2), B.pb(3);
}
for(printf("%d\n", A.size()), i = 0; i < A.size(); i++)
printf("%d ", A[i]);
for(printf("\n%d\n", B.size()), i = 0; i < B.size(); i++)
printf("%d ", B[i]);
printf("\n");
return 0;
}