Pagini recente » Cod sursa (job #1308150) | Cod sursa (job #212833) | Cod sursa (job #2902933) | Cod sursa (job #233632) | Cod sursa (job #262052)
Cod sursa(job #262052)
#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 p1=0,p2=0;
for(int 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;
}
printf("%lld\n",sum1-sum2);
printf("%d\n",p1);
for(int i=1;i<=p1;++i)
printf("%d ",v[i].x);
printf("\n%d\n",p2);
for(int i=1;i<=p2;++i)
printf("%d ",v[i].y);
}
void solve()
{
int p=1,t=1;
if(n%4==0)
for(int i=1;i<=n;++i)
if((i%4==0 || (i+3)%4==0) && ((i+1)%3 || (i+2)%3))
v[p++].x=i;
else
v[t++].y=i;
else
{
if((n-1)%4==0)
{
v[p++].x=1;
for(int i=2;i<=n;++i)
if((i%4==0 || (i+3)%4==0) && ((i+1)%3 || (i+2)%3))
v[p++].x=i;
else
v[t++].y=i;
}
if((n-2)%4==0)
{
v[p++].x=1;
v[t++].y=2;
for(int i=3;i<=n;++i)
if((i%4==0 || (i+3)%4==0) && ((i+1)%3 || (i+2)%3))
v[p++].x=i;
else
v[t++].y=i;
}
if((n-3)%4==0)
{
v[p++].x=1;
v[p++].x=2;
v[t++].y=3;
for(int i=4;i<=n;++i)
if((i%4==0 || (i+3)%4==0) && ((i+1)%3 || (i+2)%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;
}