Pagini recente » Cod sursa (job #2064607) | Cod sursa (job #849972) | Cod sursa (job #680397) | Cod sursa (job #473121) | Cod sursa (job #109570)
Cod sursa(job #109570)
#include<stdio.h>
long n,k,i;
int main()
{
freopen("multimi2.in","r",stdin);
freopen("multimi2.out","w",stdout);
// difminima este 0 cand n este de forma m4 sau m4+3 deoarece fiecare suma=m4*(m4+1)/4 sau (m4+3)m4 /4 care este naturala si exista
scanf("%ld",& n);
if (n%4==0)
{
printf("0\n");
k=n/4;
printf("%ld\n",k*2);
for (i=1;i<=k;++i)
printf ("%ld %ld ",i ,4*k-i+1);
printf ("\n");
printf("%ld\n",k*2);
for (i=k+1;i<=2*k;++i)
printf ("%ld %ld " ,i ,4*k-i+1);
}
if (n%4==3)
{
printf("0\n");
k=n/4;
printf("%ld\n",2*k+1);
printf("%ld ", 4*k+3);
for (i=1;i<=k;++i)
printf("%ld %ld ",i ,4*k+3-i);
printf("\n");
printf("%ld\n",2*k+2);
for (i=k+1;i<=2*k+1;++i)
printf("%ld %ld ",i ,4*k+3-i);
}
if (n%4==2)
{
k=n/4;
printf("1\n");
printf("%ld\n",k+1);
for (i=1;i<=k+1;++i)
printf("%ld ",4*k+3-i);
printf("\n");
printf("%ld\n",3*k+1);
for (i=k+2;i<=4*k+2;++i)
printf("%ld ",4*k+3-i);
}
if (n%4==1)
{
k=n/4;
printf("1\n");
printf("%ld\n",2*k);
for (i=2;i<=k+1;++i)
printf ("%ld %ld ", i , 4*k +3 -i );
printf("\n");
printf("%ld\n",2*k+1);
printf("1 ");
for (i=k+2;i<=3*k+1;++i)
printf("%ld ",i);
}
return 0;
}