Pagini recente » Cod sursa (job #956922) | Cod sursa (job #1103134) | Cod sursa (job #1531313) | Cod sursa (job #363627) | Cod sursa (job #110862)
Cod sursa(job #110862)
#include <stdio.h>
int a[1000010],n,q,t,nr1;
long long s,sp;
void proc(int x)
{
if (t==1) return;
sp+=x;
if (sp==s)
{
t=1;
nr1=0;
for (int i=1; i<=n; ++i)
if (a[i]==1) ++nr1;
printf("%d\n",nr1);
for (int i=1; i<=n; ++i) if (a[i]==1) printf("%d ",i);
printf("\n");
printf("%d\n",n-nr1);
for (int i=1; i<=n; ++i) if (a[i]==0) printf("%d ",i);
return;
}
if (s-sp<=x)
{
// if (sp+n<s) q=1;
sp-=x;
return;
}
for (int i=x+1; i<=n; ++i)
{
if (sp+i>s) return;
a[i]=1;
proc(i);
if(t==1) return;
if (q=1)
//{
// q=0;
// return;
//}
a[i]=0;
}
sp-=x;
}
int main()
{
freopen("multimi2.in","r",stdin);
freopen("multimi2.out","w",stdout);
scanf("%d",&n);
s=(long long)n*(n+1)/2;
printf("%d\n",s%2);
s=s/2;
proc(0);
return 0;
}