답안 #3863

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
3863 2013-08-31T08:56:37 Z GhostCode Inherited disease (kriii1_I) C++
0 / 1
0 ms 1672 KB
#include <iostream>
using namespace std;

unsigned long long fec(unsigned long long f)
{
	if(f!=0)
	{
		return (f*fec(f-1))%1000000007;
	}

	return 1;
}
unsigned long long GenFind(unsigned long long* G,unsigned long long num)
{	//그 숫자세대의 토탈값
	if(num==0)
	{
		return 0;
	}
	else if(num==1)
		return 1;
	else if(G[num]==NULL)
	{
		G[num]=(GenFind(G,num-1)+fec(num))%1000000007;
	}
	return G[num];

}
int main()
{
	int D;
	cin>>D;
	unsigned long long *Gen = new unsigned long long[D];
	unsigned long long *Position = new unsigned long long [D];
	for (int i = 0; i<D;i++)
	{
		Gen[i]=NULL;
	//		cout<<GenFind(Gen,i)<<endl;

	}
	for(int i = 0; i<D;i++)
	{
		cin>>Position[i];
	}
	for(int i = 0; i<D;i++)
	{
		if(i==0)
			cout<<"1"<<endl;
		else if(i==1)
		{
			cout<<	GenFind(Gen,i)+		Position[i]<<endl;
					//부모값      + 	이번위치
		}
		else
		{
			unsigned long long k = 
				(GenFind(Gen,i)+	
				(((Position[i-1]-1)*(i+1))%1000000007)	+	
				Position[i])
				%1000000007;
			cout<<	k<<endl;
					//부모값      + 부모위치*현재세대값		+	이번위치
		}
	}
	return 0 ;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 1672 KB Output isn't correct
2 Halted 0 ms 0 KB -