제출 #1329041

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

using namespace std;

const int M = 100;

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

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

int main()
{
	int n;
	cin>>n;
	int a[n][n],su=0;
	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=62;i>=0;i--)
	{
		su+=dp[n-1][n-1][i];
		if (su)
			cout<<dp[n-1][n-1][i];
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...