Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int arr[100];
- int x,n;
- int dp[1000][1000];
- char niz[1000][1000];
- int rec(int a,int b){
- if (a==n-1 and b==n-1){
- return 1;
- }
- if (dp[a][b]!=-1){
- return dp[a][b];
- }
- else {
- int sum=0;
- for (int i=0;i<2;i++){
- if (i==0){
- if (a+1<n and niz[a+1][b]!='*'){
- sum=sum+rec(a+1,b);
- }
- }
- else {
- if (b+1<n and niz[a][b+1]!='*'){
- sum=sum+rec(a,b+1);
- }
- }
- }
- dp[a][b]=sum%(int)(1e9+7);
- return sum%(int)(1e9+7);
- }
- }
- int main(){
- cin>>n;
- for (int i=0;i<n;i++){
- for (int j=0;j<n;j++){
- cin>>niz[i][j];
- }
- }
- for (int i=0;i<1000;i++){
- for (int j=0;j<1000;j++){
- dp[i][j]=-1;
- }
- }
- if (niz[0][0]=='*'){
- cout<<0;
- }
- else{
- cout<<rec(0,0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment