All pastes #41293 Raw Edit

Something

public text v1 · immutable
#41293 ·published 2006-02-12 17:07 UTC
rendered paste body
#include<stdio.h>
long N;
long n;
long ans[4][10001];
long cnt[4];
long flag[4][1000001];

long finans[4][10001];
long fincnt[4];

int f=0;


int main()
{
	long x;
	long k,t;
	long i,j;
	scanf("%ld",&N);
		f=0;
		cnt[0]=1;
		cnt[1]=1;
		cnt[2]=1;
		ans[0][0]=1;
		ans[1][0]=2;
		ans[2][0]=3;
		n=10000;
		for(i=0;i<3;i++)
		{
			for(j=5;j<=5*n;j+=5)
			{
				flag[i][j]=0;
			}
		}

		flag[0][5]=1;
		flag[1][10]=1;
		flag[2][15]=1;


			for(k=4;k<=n;k++)
			{
				for(i=0;i<3;i++)
				{
					for(j=0;j<cnt[i];j++)
					{
						t=ans[i][j]+k;
						if(flag[i][t]==1)
						{
							break;					
						}
					}
					if(j==cnt[i])
					{
						flag[i][5*k]=1;
						ans[i][cnt[i]]=k;
						cnt[i]++;
						break;
					}
				}
			}
			


	for(x=0;x<N;x++)
	{
		fincnt[0]=0;
		fincnt[1]=0;
		fincnt[2]=0;
		scanf("%d",&n);
		if(n==0)
		{
			printf("0\n");
			printf("0 0 0\n");
		}
		else if(n==1)
		{
			printf("1\n");
			printf("1 0 0\n");
			printf("1\n");
		}
		else if(n==2)
		{
			printf("2\n");
			printf("1 1 0\n");
			printf("1\n");
			printf("2\n");
		}
		else if(n==3)
		{
			printf("3\n");
			printf("1 1 1\n");
			printf("1\n");
			printf("2\n");
			printf("3\n");
		}
		else
		{
			printf("%ld\n",n);
			for(i=0;i<3;i++)
			{
				for(j=0;j<cnt[i];j++)
				{
					if(ans[i][j]>n)
						break;
					finans[i][j]=ans[i][j];				
					fincnt[i]++;					
				}
			}
			printf("%ld %ld %ld\n",fincnt[0],fincnt[1],fincnt[2]);

			for(i=0;i<3;i++)
			{
				for(j=0;j<fincnt[i];j++)
				{			
					printf("%ld ",finans[i][j]);						
				}
				printf("\n");
			}
		}
	}

	return 0;
}