比赛 20120614 评测结果 WWWWWWEEEW
题目名称 小D的背包问题 最终得分 0
用户昵称 Citron酱 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-14 15:49:58
显示代码纯文本
#include <cstdio>

#define I_F "baga.in"
#define O_F "baga.out"

const int P=997;
const bool R[6][6]={{1,1,1,0,1,1},
					{1,0,0,1,0,0},
					{1,1,1,0,1,1},
					{1,1,1,0,1,1},
					{1,1,1,0,1,1},
					{1,1,1,1,1,1}};

long n;
int ans;

void Input();
void Dynap();
void Output();

int main()
{
	Input();
	Dynap();
	Output();
	return 0;
}

void Input()
{
	freopen(I_F,"r",stdin);
	scanf("%ld",&n);
}

void Dynap()
{
	int *f[6];
	for (short i=0; i<6; ++i)
	{
		f[i]=new int[n+1];
		f[i][0]=0;
	}
	f[5][0]=1;
	
	for (long i=1; i<=n; ++i)
		for (short j=0; j<6; ++j)
		{
			f[j][i]=0;
			for (short k=0; k<6; ++k)
				if (R[j][k])
					f[j][i]=(f[j][i]+f[k][i-1])%P;
		}
	ans=f[5][n];
}

void Output()
{
	freopen(O_F,"w",stdout);
	printf("%d\n",ans);
}