Pagini recente » Cod sursa (job #711844) | Cod sursa (job #1215768) | Cod sursa (job #2860418) | Cod sursa (job #1719156) | Cod sursa (job #1201541)
#include <cstdio>
#include <algorithm>
#define rint register int
const char IN[]="multimi2.in";
const char OUT[]="multimi2.out";
const int MAX = 1000100;
using namespace std;
int mul1[MAX],mul2[MAX],l1,l2,n;
int main()
{
freopen( IN, "r" ,stdin );
freopen( OUT, "w" ,stdout );
scanf("%d",&n);
for( rint i=n; i>=4; i-=4){
mul1[++l1]=i;
mul1[++l1]=i-3;
mul2[++l2]=i-2;
mul2[++l2]=i-1;
}
if( n%4 == 0){
printf("0\n");
sort( mul1 + 1, mul1 + l1 + 1 );
sort( mul2 + 1 , mul2 + l2 + 1 );
printf("%d\n",l1);
for(rint i=1;i<=l1;++i)printf("%d ",mul1[i]);
printf("\n%d\n",l2);
for(rint i=1;i<=l2;++i)printf("%d ",mul2[i]);
}
else if ( n%4 == 1 ){
printf("1\n");
mul1[++l1]=1;
sort( mul1 + 1, mul1 + l1 + 1 );
sort( mul2 + 1 , mul2 + l2 + 1 );
printf("%d\n",l1);
for(rint i=1;i<=l1;++i)printf("%d ",mul1[i]);
printf("\n%d\n",l2);
for(rint i=1;i<=l2;++i)printf("%d ",mul2[i]);
}
else if (n%4 == 2){
printf("1\n");
mul1[++l1]=1;
mul2[++l2]=2;
sort( mul1 + 1, mul1 + l1 + 1 );
sort( mul2 + 1 , mul2 + l2 + 1 );
printf("%d\n",l1);
for(rint i=1;i<=l1;++i)printf("%d ",mul1[i]);
printf("\n%d\n",l2);
for(rint i=1;i<=l2;++i)printf("%d ",mul2[i]);
}
else {
printf("0\n");
mul1[++l1]=1;
mul1[++l1]=2;
mul2[++l2]=3;
sort( mul1 + 1, mul1 + l1 + 1 );
sort( mul2 + 1 , mul2 + l2 + 1 );
printf("%d\n",l1);
for(rint i=1;i<=l1;++i)printf("%d ",mul1[i]);
printf("\n%d\n",l2);
for(rint i=1;i<=l2;++i)printf("%d ",mul2[i]);
}
return 0;
}