<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1622_-_Elicoptere</id>
	<title>1622 - Elicoptere - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1622_-_Elicoptere"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;action=history"/>
	<updated>2026-06-17T09:48:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;diff=9918&amp;oldid=prev</id>
		<title>Benzar Ioan at 02:22, 3 June 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;diff=9918&amp;oldid=prev"/>
		<updated>2024-06-03T02:22:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;amp;diff=9918&amp;amp;oldid=9872&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;diff=9872&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Într-un ținut montan, elicopterele sunt folosite pentru a transporta provizii între diferite baze de operațiuni. Aceste baze sunt reprezentate prin nodurile unui graf neorientat, iar zborurile directe între baze sunt reprezentate prin muchiile acestui graf. Se dorește să se determine dacă există o cale între două baze date.   == Date de intrare == Programul citește de la tastatură:  Un număr întreg n reprezentând numărul de baze (noduri). Un nu...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1622_-_Elicoptere&amp;diff=9872&amp;oldid=prev"/>
		<updated>2024-06-02T19:51:15Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Într-un ținut montan, elicopterele sunt folosite pentru a transporta provizii între diferite baze de operațiuni. Aceste baze sunt reprezentate prin nodurile unui graf neorientat, iar zborurile directe între baze sunt reprezentate prin muchiile acestui graf. Se dorește să se determine dacă există o cale între două baze date.   == Date de intrare == Programul citește de la tastatură:  Un număr întreg n reprezentând numărul de baze (noduri). Un nu...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerința ==&lt;br /&gt;
Într-un ținut montan, elicopterele sunt folosite pentru a transporta provizii între diferite baze de operațiuni. Aceste baze sunt reprezentate prin nodurile unui graf neorientat, iar zborurile directe între baze sunt reprezentate prin muchiile acestui graf. Se dorește să se determine dacă există o cale între două baze date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură:&lt;br /&gt;
&lt;br /&gt;
Un număr întreg n reprezentând numărul de baze (noduri).&lt;br /&gt;
Un număr întreg m reprezentând numărul de zboruri directe (muchii).&lt;br /&gt;
O listă de m perechi de numere întregi, fiecare pereche reprezentând o muchie între două baze.&lt;br /&gt;
O pereche de numere întregi x și y reprezentând cele două baze între care se dorește verificarea existenței unei căi.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Pe ecran se va afișa mesajul &amp;quot;Da&amp;quot; dacă există o cale între baza x și baza y sau &amp;quot;Nu&amp;quot; în caz contrar.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; 100&lt;br /&gt;
*1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; 1000&lt;br /&gt;
*1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;x,y&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; n&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
5&amp;lt;br&amp;gt;&lt;br /&gt;
4&amp;lt;br&amp;gt;&lt;br /&gt;
1 2&amp;lt;br&amp;gt;&lt;br /&gt;
2 3&amp;lt;br&amp;gt;&lt;br /&gt;
3 4&amp;lt;br&amp;gt;&lt;br /&gt;
4 5&amp;lt;br&amp;gt;&lt;br /&gt;
1 5&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
Da&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
5&amp;lt;br&amp;gt;&lt;br /&gt;
3&amp;lt;br&amp;gt;&lt;br /&gt;
1 2&amp;lt;br&amp;gt;&lt;br /&gt;
2 3&amp;lt;br&amp;gt;&lt;br /&gt;
3 4&amp;lt;br&amp;gt;&lt;br /&gt;
1 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
Nu&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
from collections import defaultdict, deque&lt;br /&gt;
&lt;br /&gt;
def citeste_date():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceți numărul de baze (n): &amp;quot;))&lt;br /&gt;
        m = int(input(&amp;quot;Introduceți numărul de zboruri directe (m): &amp;quot;))&lt;br /&gt;
        muchii = []&lt;br /&gt;
        for _ in range(m):&lt;br /&gt;
            u, v = map(int, input().strip().split())&lt;br /&gt;
            muchii.append((u, v))&lt;br /&gt;
        x, y = map(int, input(&amp;quot;Introduceți cele două baze între care se dorește verificarea existenței unei căi (x y): &amp;quot;).split())&lt;br /&gt;
        return n, m, muchii, x, y&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return None, None, None, None, None&lt;br /&gt;
&lt;br /&gt;
def construieste_graf(n, muchii):&lt;br /&gt;
    graf = defaultdict(list)&lt;br /&gt;
    for u, v in muchii:&lt;br /&gt;
        graf[u].append(v)&lt;br /&gt;
        graf[v].append(u)&lt;br /&gt;
    return graf&lt;br /&gt;
&lt;br /&gt;
def exista_cale(graf, start, end):&lt;br /&gt;
    vizitat = set()&lt;br /&gt;
    coada = deque([start])&lt;br /&gt;
    while coada:&lt;br /&gt;
        nod = coada.popleft()&lt;br /&gt;
        if nod == end:&lt;br /&gt;
            return True&lt;br /&gt;
        for vecin in graf[nod]:&lt;br /&gt;
            if vecin not in vizitat:&lt;br /&gt;
                vizitat.add(vecin)&lt;br /&gt;
                coada.append(vecin)&lt;br /&gt;
    return False&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, m, muchii, x, y = citeste_date()&lt;br /&gt;
    &lt;br /&gt;
    if n is None or m is None or muchii is None or x is None or y is None:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
    &lt;br /&gt;
    graf = construieste_graf(n, muchii)&lt;br /&gt;
    if exista_cale(graf, x, y):&lt;br /&gt;
        print(&amp;quot;Da&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Nu&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
</feed>