Dividing the numbers
题目
样例
思路
相邻四个数字可以分组抵消,所以分四种情况讨论,开头长度不同,后面每四个一组。
代码
#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int t=n%4;
int l=n/4;
if(t==0)
{
printf("0\n");
printf("%d ",2*l);
printf("2 3");
for(int i=5;i<=n;)
{
printf(" %d %d",i+1,i+2);
i+=4;
}
}
else if(t==1)
{
printf("1\n");
printf("%d ",2*l+1);
printf("1");
for(int i=2;i<=n;)
{
printf(" %d %d",i+1,i+2);
i+=4;
}
}
else if(t==2)
{
printf("1\n");
printf("%d ",2*l+1);
printf("1");
for(int i=3;i<=n;)
{
printf(" %d %d",i+1,i+2);
i+=4;
}
}
else if(t==3)
{
printf("0\n");
printf("%d ",2*l+1);
printf("3");
for(int i=4;i<=n;)
{
printf(" %d %d",i+1,i+2);
i+=4;
}
}
return 0;
}