#include <bits/stdc++.h>
#define ll long long int
using namespace std;
int n;
vector <vector <string> > b;
vector <vector <int> > c;
string print(string z)
{
int i=z.length()-1;
string r;
for(i=z.length()-1; i>0; --i)
{
if(z[i]!='0')
{
break;
}
}
for(; i>=0; --i)
{
r+=z[i];
}
return r;
}
void add(int i, int j, int in, int jn)
{
int aux=0;
for(int x=0; x<b[in][jn].length(); ++x)
{
b[in][jn][x]+=b[i][j][x]-'0'+aux;
aux=b[in][jn][x]-'0';
aux/=10;
b[in][jn][x]-=10*aux;
}
return;
}
int main()
{
cin>>n;
b.assign(n, vector <string>(n, string("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")));
c.assign(n, vector <int>(n, 0));
b[0][0][0]='1';
for(int i=0; i<n; ++i)
{
for(int j=0; j<n; ++j)
{
cin>>c[i][j];
}
}
for(int i=0; i<n; ++i)
{
for(int j=0; j<n; ++j)
{
if(i<n-1 || j<n-1)
{
if(i+c[i][j]<n)
{
add(i, j, i+c[i][j], j);
}
if(j+c[i][j]<n)
{
add(i, j, i, j+c[i][j]);
}
}
}
}
cout<<print(b[n-1][n-1]);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |