Pagini recente » Cod sursa (job #1402273) | Cod sursa (job #179574) | Cod sursa (job #2757178) | Cod sursa (job #3255778) | Cod sursa (job #110863)
Cod sursa(job #110863)
#include <stdio.h>
int a[1001000],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;
}