#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int va[20][2],i,j,iesire,intrare,st[21],as,ev,k=2,timp,mint=10000,d=0,t=0;
float distanta,mind=10000;
char comune[65][25];
struct intr
{
int t;
float d;
}v[65][65];
void init(int k,int st[21])
{
st[k]=0;
}
void succesor(int k,int &as,int st[21])
{
if(st[k]<65&&k<20)
{
st[k]++;
as=1;
}
else
{
as=0;
}
}
void valid(int k,int &ev,intr v[65][65],int st[21])
{
int i;
ev=1;
if (v[st[k]][st[k-1]].d==0)
ev=0;
else
for(i=1;i<k;i++)
if(st[i]==st[k])
ev=0;
}
int solutie(int k,int iesire,int st[21])
{
return(st[k]==iesire);
}
void tipar(int k,int timp,float distanta,int &mint,float &mind,int va[20][2],int &t,int &d,int st[21])
{
if(mint>timp)
{
for(i=1;i<=k;i++)
va[i][0]=st[i];
mint=timp;
t=k;
}
if(mind>distanta)
{
for(i=1;i<=k;i++)
va[i][1]=st[i];
mind=distanta;
d=k;
}
}
int main()
{
cout<<"intrare=";cin>>intrare;
cout<<"iesire=";cin>>iesire;
ifstream f("database.c");
for(i=1;i<=65;i++)
for(j=1;j<=65;j++)
{
f>>v[i][j].t;
}
for(i=1;i<=65;i++)
for(j=1;j<=65;j++)
{
f>>v[i][j].d;
}
st[1]=intrare;
k=2;
init(k,st);
if (iesire==40||intrare==40)
cout<<"Nu exista drum prin judetul Galati.";
else
{
while(k>1)
{
do
{
succesor(k,as,st);
if(as!=0)
valid(k,ev,v,st);
}while(as!=0&&ev==0);
if(as!=0)
if(solutie(k,iesire,st))
{
timp=timp+v[st[k]][st[k-1]].t;
distanta=distanta+v[st[k]][st[k-1]].d;
tipar(k,timp,distanta,mint,mind,va,t,d,st);
timp=timp-v[st[k]][st[k-1]].t;
distanta=distanta-v[st[k]][st[k-1]].d;
}
else
{
timp=timp+v[st[k]][st[k-1]].t;
distanta=distanta+v[st[k]][st[k-1]].d;
k++;
init(k,st);
}
else
{
k--;
timp=timp-v[st[k]][st[k-1]].t;
distanta=distanta-v[st[k]][st[k-1]].d;
}
}
for(i=1;i<=t;i++)
cout<<va[i][0]<<" ";
cout<<endl<<"timp min="<<(mint*85/100)<<endl;
for(i=1;i<=d;i++)
cout<<va[i][1]<<" ";
cout<<endl<<"dist min="<<(mind*75/100)<<endl;
return 0;
}
}
Hello everyone! I am trying to calculate the minimum distance between a few cities and also the minimum time to get from point A to point B.
Intrare = point A Iesire = point B database.c is a file that contains 2 matrix with the links between cities and one with the travel time. DATABASE : https://www.scribd.com/doc/260509723/database-cpp
It will display the link cities you need to go through to get to point b and also the distance in kilometers("dist min") and the travel time ("timp min").
It stops working after build and run. it displays everything but a window pops up saying that the file has stopped working. Could you help me?