Pagini recente » Cod sursa (job #2581038) | Cod sursa (job #1209131) | Cod sursa (job #658013) | Cod sursa (job #2894648) | Cod sursa (job #262264)
Cod sursa(job #262264)
#include<stdio.h>
#define Nmax 1000020
struct fc{
int x,y;
};
int n;
fc v[Nmax];
void afisare()
{
long long sum1=0,sum2=0;
int i,p1=0,p2=0;
for(i=1;i<=n;++i)
{
sum1+=v[i].x;
if(v[i].x>0)
++p1;
if(v[i].y>0)
++p2;
sum2+=v[i].y;
}
if (sum1-sum2<0)
printf("%lld\n",(-1)*(sum1-sum2));
else printf("%lld\n",sum1-sum2);
printf("%d\n",p1);
for(i=1;i<=p1;++i)
printf("%d ",v[i].x);
printf("\n%d\n",p2);
for(i=1;i<=p2;++i)
printf("%d ",v[i].y);
}
void solve()
{
int p=1,t=1,e=1,r=1;
if(n%4==0)
{
for(int i=1;i<=n;++i)
{
if(i%4==0 || i%4==1)
v[e++].x=i;
else
v[r++].y=i;
}
}
else
{
if(n%4==1)
{
v[p++].x=1;
for(int i=2;i<=n;++i)
if(i%4==0 || i%4==3)
v[p++].x=i;
else
v[t++].y=i;
}
if(n%4==2)
{
v[p++].x=1;
v[t++].y=2;
for(int i=3;i<=n;++i)
if((i%4)==2 || (i%4)==3)
v[p++].x=i;
else
v[t++].y=i;
}
if(n%4==3)
{
v[p++].x=1;
v[p++].x=2;
v[t++].y=3;
for(int i=4;i<=n;++i)
if(i%4==0 || i%4==3)
v[p++].x=i;
else
v[t++].y=i;
}
}
afisare();
}
int main()
{
freopen("multimi2.in","r",stdin);
freopen("multimi2.out","w",stdout);
scanf("%d",&n);
solve();
return 0;
}