Submission #1326862

#TimeUsernameProblemLanguageResultExecution timeMemory
1326862Faisal_SaqibJump (BOI06_jump)C++20
85 / 100
1 ms568 KiB
#include <iostream>
#include <algorithm>
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;
    }
    if(ans.size()==0)ans+='0';
    reverse(begin(ans),end(ans));
    cout<<ans<<endl;
    // cout<<dp[1][1]<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...