Documente Academic
Documente Profesional
Documente Cultură
Dijk Stra
Dijk Stra
cost minim
Dragomir Theodora
Dovleac Ana Daniela
Clasa XI F
Prof. Coordonator Carmen
Splais
muchia
12
17
23
27
34
36
45
46
56
5-10
68
78
89
9-10
costul
10
50
15
48
10
30
20
25
20
60
40
5
30
45
MOSCOVA
MADRID
IN C++
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int a[100]
[100],d[100],s[100],p[100],n,m;
int const pinf=500000;
char aeroport[40][40];
void aeroporturi()
{
ifstream cit("destinatii.txt");
string line;
int i=1;
strcpy(aeroport[1],"Madrid");
while(getline(cit, line)) {
i++;
cit.get(aeroport[i],20);
}
cit.close();
}
IN C++
void citire()
{
int i,j,x,y,c;
ifstream f("date.txt");
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
a[i][j]=0;
else
a[i][j]=pinf;
for(i=1;i<=m;i++)
{
f>>x>>y>>c;
a[x][y]=a[y][x]=c;
}
}
IN C++
{
d[j]=d[y]+a[y][j];
p[j]=y;
}
}
}
IN C++
void drum(int i)
{
if(p[i]!=0)
drum(p[i]);
cout<<aeroport[i]<<"-";
}
void afisare(int x,int i)
{
if(i!=x)
if(p[i]!=0)
{
cout<<"Drumul cu costul minim de la
"<<aeroport[x];
cout<<" la "<<aeroport[i]<<" are costul
"<<d[i]<<" euro "<<endl;
drum(i);
cout<<endl;
}
else
cout<<" Nu exista drum de la
"<<aeroport[x]<<" la "<<aeroport[i]<<endl;
}
IN C++
int main()
{
citire();
aeroporturi();
int x1,x2;
char pplecare[30];
char psosire[30];
cout<<"Introduceti punctul de
plecare ";
cout<<endl;
cin.get(pplecare,29);
if(pplecare[0]>='a' &&
pplecare[0]<='z')
{cout<<"Tarile se scriu cu litera
mare,incultule!";
pplecare[0]=pplecare[0]-32;}
cout<<endl;
IN C++
cin.get();
cout<<"Introduceti sosire ";
cout<<endl;
cin.get(psosire,29);
if(psosire[0]>='a' && psosire[0]<='z')
{cout<<"LITERA MARE!";
psosire[0]=psosire[0]-32;}
cout<<endl;
for(int i=1;i<=10;i++)
{
if(strncmp(pplecare,aeroport[i],strlen(pplecare))==0)
x1=i;
if(strncmp(psosire,aeroport[i],strlen(psosire))==0)
x2=i;}
generare_drum(x1);
afisare(x1,x2);
}