| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1326859 | Faisal_Saqib | Jump (BOI06_jump) | C++20 | 0 ms | 0 KiB |
#include <iostream>
using namespace std;
typedef __int128 ll;
const int N=102;
ll dp[N][N];
int g[N][N];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>g[i][j];
}
}
dp[n][n]=1;
for(int i=n;i>=1;i--)
{
for(int j=n;j>=1;j--)
{
if(g[i][j]==0)continue;
if(j+g[i][j]<=n)
dp[i][j]+=dp[i][j+g[i][j]];
if(i+g[i][j]<=n)
dp[i][j]+=dp[i+g[i][j]][j];
}
}
string ans;
while(dp[1][1]>0)
{
ans+=char('0'+(dp[1][1]%10));
dp[1][1]/=10;
}
reverse(begin(ans),end(ans));
cout<<ans<<endl;
// cout<<dp[1][1]<<endl;
}
