Zaimplementuj zachłanny algorytm poszukiwania drogi w podanej tablicy. Dane podane są w pliku wejściowym dane.txt. W pliku znajduje się liczba N oraz tablica liczb nieujemnych, całkowitych o wymiarach N x N. Program, z użyciem metody zachłannej, znajduje drogę z lewego dolnego rogu tablicy do prawego górnego rogu i jej koszt. Program wypisuje do pliku wynik.txt współrzędne kolejnych pól na drodze w tablicy. Po tablicy możemy poruszać się tylko do góry lub w prawo.
Nie pokazuje błędu a w okienku nic mi nie wyświetla, mógłby ktoś powiedzieć co zmienić żeby mi to działało dobrze?
#include <iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
string tekst;
ifstream plik("dane.txt");
if(plik.is_open())
{
while(plik.good())
{
getline(plik, tekst);
cout << tekst << endl;
}
plik.close();
}
int n,m;
cin >> n >> m;
int G[n][m+1];
int P[n+1][m];
int D[n+1][m+1];
D[0][0] = 0;
int i,j;
for(i=0; i<n ; i++){
for(j=0; j<m ; j++)
{
cout << "Podaj dlugosci drog z punktu" << i <<","<< j <<" w prawo" <<endl;
cin >> P[i][j];
cout << "w gore";
cin >> G[i][j];
}
cout << "Podaj dlugosc drogi w gore z punktu" << i <<","<< j << endl;
cin >> G[i][j];
}
for(j=0;j<m;j++)
{
cout << "Podaj dlugosc drogi w prawo z punktu" << i <<","<< j << endl;
cin >> P[i][j];
}
i=0;
for(j=1;j<m+1;j++)
{
D[i][j]=D[i][j-1]+P[i][j-1];
}
for(i=1;i<n+1;i++){
D[i][0]=D[i-1][0]+G[i-1][0];
for(j=1;j<m+1;j++)
{
if(D[i][j-w[i]]+c[i]<D[i-1][j])
{
D[i][j] = D[i-1][j];
}
else
{
D[i][j] = D[i][j-w[i]] + c[i];
} }
}
for(i=n;i>=0;i--){
for(j=0;j<m+1;j++)
{
cout << D[i][j] <<" ";
}
cout << endl;
}
return 0;
}