제출 #1329039

#제출 시각아이디문제언어결과실행 시간메모리
1329039MuhammadSaramJump (BOI06_jump)C++20
0 / 100
5 ms2612 KiB
#include <bits/stdc++.h>

using namespace std;

const int M = 100;

array<int,60> dp[M][M];

void add(array<int,60> &a, array<int,60> &b)
{
	int c=0,d;
	for (int i=0;i<60;i++)
		d=a[i]+b[i]+c,a[i]=d%10, c=d/10;
}

int main()
{
	int n;
	cin>>n;
	int a[n][n];
	for (int i=0;i<n;i++)
		for (int j=0;j<n;j++)
			cin>>a[i][j];
	dp[0][0][0]=1;
	for (int i=0;i<n;i++)
		for (int j=0;j<n;j++)
		{
			if (!a[i][j]) continue;
			if (i+a[i][j]<n)
				add(dp[i+a[i][j]][j],dp[i][j]);
			if (j+a[i][j]<n)
				add(dp[i][j+a[i][j]],dp[i][j]);
		}
	for (int i=59;i>=0;i--)
		cout<<dp[n-1][n-1][i];
}
#Verdict Execution timeMemoryGrader output
Fetching results...