ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1119. Метро

runtime error
Послано yakung 9 мар 2021 09:44
I'm getting runtime error(access violation) on test case three. I don't know where I went wrong. Can anyone please help me?

Here is my code

using namespace std;
#include <iostream>
#include <cmath>
#include<bits/stdc++.h>
long long int n,m;
bool vi[1005][1005], di[1005][1005];
float dp[1005][1005];
#define inf 1e7
float shortest_path(int x, int y){//returns shortest path
    //base case
    if(x==n && y==m) return 0.0;
    if(x>n || y>m) return inf;
    //memorization
    if(vi[x][y]) return dp[x][y];
    //recursive relation
    float a,b,c = 20000.0;
    if(di[x][y]==1){
        a = sqrt(c) + shortest_path(x+1,y+1);//diagonal
        b = inf;
    }

    else
    {
        a = 100.0 + shortest_path(x+1,y);//left
        b = 100.0 + shortest_path(x,y+1);//up
    }

    float ans = min(a,b);
    dp[x][y] = ans;
    vi[x][y] = 1;
    return dp[x][y];
}

int main(){
    cin>>n>>m;
    int k;
    for (int i = 0; i < n*m; ++i)
    {
        for (int j = 0; j < n*m; ++j)
        {
            di[i][j] = 0;
            vi[i][j]=0;
            dp[i][j]=0;
        }
    }
    cin>>k;
    for (int i = 0; i < k; ++i)
    {
        int a,b;
        cin>>a>>b;
        di[a-1][b-1] = 1;
    }

    cout<<round(shortest_path(0,0))<<endl;

}