Meniu Principal
Pagina principala
Adauga o problema
Trimite-mi un mesaj
Cautare
Top probleme
Link
Statistici
Chestionare
Domenii probleme
Algoritmi
Arbori si Arborescente
Backtracking
Diverse
Grafuri
Greedy
Liste
Pointeri
Programare dinamica
Recursivitate
Structuri de date
Cautare in site
Statistici
38 probleme pe site
Incepand cu : 15.02.2004
Accesari : 217034
[
Statistici detaliate
]
Luna aglomerata :
martie 2025 (8612)
Zi aglomerata :
11 noiembrie 2021 (2711)
Ora aglomerata :
15:00 - 15:59 in data de 16 august 2022 (2539)
Modificare problema
Domeniu :
Algoritmi
Arbori si Arborescente
Backtracking
Diverse
Grafuri
Greedy
Liste
Pointeri
Programare dinamica
Recursivitate
Structuri de date
Nume :
Adresa E-mail :
Enunt :
Mai multe orase sunt legate prin autostrazi cu sens unic. Nu Toate orasele sunt legate intre ele prin legatura directa. Fiind dat orasul in care se afla un turist cu masina sa, se cer sa se urmatoarele: a) lista orselor unde turistul poate ajunge b) lista oraselor unde turistul poate ajunge, dar si intoarce Datele se citesc dintr-un fisier, organizat astfel: -Pe prima linie numarul oraselor, n , si orasul in care se afla, k - pe fiecare linie i, din urmatoarele linii, se gasesc orasele la care se poate ajunge printr-o autostrada care nu mai trece prin alt oras.
Rezolvare :
#include<fstream.h> int graf[100][100],n,nod; //graf int drum[100][100],viz[100]; //drum void citire() { fstream f("graf.txt", ios::in); f>>n>>nod; int i,j; while (f>>i>>j) graf[i][j]=1; f.close(); } void undepoateajunge(int nod) { cout<<nod<<" "; viz[nod]=1; for (int i=1;i<=n;i++) if ((graf[nod][i]==1) && (viz[i]==0)) undepoateajunge(i); } void matdr(int i,int j) { if (i!=j) drum[i][j]=1; viz[j]=1; for(int k=1;k<=n;k++) if ((graf[j][k]==1) && (viz[k]==0)) matdr(i,k); } void undepoateajungesiintoarce(int nodc) { int i; if ((drum[nodc][nod]==1) && (nod!=nodc)) cout<<nodc<<" "; viz[nodc]=1; for (i=1;i<=n;i++) if ((graf[nodc][i]==1) && (viz[i]==0)) undepoateajungesiintoarce(i); } void main() { citire(); cout<<"\n\n\n---------- Unde poate ajunge ---------------"<<endl<<endl; undepoateajunge(nod); int i; for (i=1;i<=n;i++) { for (int j=1;j<=n;j++) viz[j]=0; matdr(i,i); } for (i=1;i<=n;i++) viz[i]=0; cout<<"\n\n\n---------- Unde poate ajunge si se poate intoarce ---------------"<<endl<<endl; undepoateajungesiintoarce(nod); cout<<"\n\n\n\n"; }
Chestionar
Ce ai vrea mai nou la acest site ?
mai multe probleme
alta grafica
posibilitare creare cont
probleme propuse pentru rezolvare
un forum
Rezultate
Alte chestionare
Voturi:
48
TOP probleme accesate
verificati daca 2 cuvinte sunt anagrame recursiv test dass & ssss
Domeniu : Recursivitate
Adaugat de : Naum Bogdan
Hits : 6644
calculati minimul dintr-un vector recursiv
Domeniu : Recursivitate
Adaugat de : Naum Bogdan
Hits : 3918
La o statie meteo se alcatuieste zilnic un buletin meteo ce contine : nume metereolog - peresiune
Domeniu : Structuri de date
Adaugat de : Naum Bogdan
Hits : 1751
Copyright © 2004 -
Naum Bogdan
[ toate drepurile rezervate ]
HIT100.ro Calculatoare