<?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=3960_-_Intersectie_Siruri</id>
	<title>3960 - Intersectie Siruri - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3960_-_Intersectie_Siruri"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3960_-_Intersectie_Siruri&amp;action=history"/>
	<updated>2026-05-01T06:38:27Z</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=3960_-_Intersectie_Siruri&amp;diff=7928&amp;oldid=prev</id>
		<title>Zmicala Narcis: Pagină nouă: == Cerința == Dându-se mai multe &#039;&#039;&#039;șiruri crescătoare&#039;&#039;&#039; de numere &#039;&#039;&#039;naturale&#039;&#039;&#039;, sfârșitul fiecarui astfel de șir fiind &#039;&#039;&#039;marcat&#039;&#039;&#039; de numărul &#039;&#039;&#039;0&#039;&#039;&#039;, se cere să se afișeze în ordine &#039;&#039;&#039;strict crescătoare&#039;&#039;&#039;, numerele &#039;&#039;&#039;comune&#039;&#039;&#039; tuturor șirurilor. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;intersectiein.txt&#039;&#039;&#039; conține &#039;&#039;&#039;numere naturale&#039;&#039;&#039; separate printr-un spațiu, care formează &#039;&#039;&#039;șiruri crescătoare&#039;&#039;&#039;, fiecare astfel de șir terminându-se cu nu...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3960_-_Intersectie_Siruri&amp;diff=7928&amp;oldid=prev"/>
		<updated>2023-12-12T18:37:32Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Dându-se mai multe &amp;#039;&amp;#039;&amp;#039;șiruri crescătoare&amp;#039;&amp;#039;&amp;#039; de numere &amp;#039;&amp;#039;&amp;#039;naturale&amp;#039;&amp;#039;&amp;#039;, sfârșitul fiecarui astfel de șir fiind &amp;#039;&amp;#039;&amp;#039;marcat&amp;#039;&amp;#039;&amp;#039; de numărul &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;, se cere să se afișeze în ordine &amp;#039;&amp;#039;&amp;#039;strict crescătoare&amp;#039;&amp;#039;&amp;#039;, numerele &amp;#039;&amp;#039;&amp;#039;comune&amp;#039;&amp;#039;&amp;#039; tuturor șirurilor. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;intersectiein.txt&amp;#039;&amp;#039;&amp;#039; conține &amp;#039;&amp;#039;&amp;#039;numere naturale&amp;#039;&amp;#039;&amp;#039; separate printr-un spațiu, care formează &amp;#039;&amp;#039;&amp;#039;șiruri crescătoare&amp;#039;&amp;#039;&amp;#039;, fiecare astfel de șir terminându-se cu 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;
Dându-se mai multe &amp;#039;&amp;#039;&amp;#039;șiruri crescătoare&amp;#039;&amp;#039;&amp;#039; de numere &amp;#039;&amp;#039;&amp;#039;naturale&amp;#039;&amp;#039;&amp;#039;, sfârșitul fiecarui astfel de șir fiind &amp;#039;&amp;#039;&amp;#039;marcat&amp;#039;&amp;#039;&amp;#039; de numărul &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;, se cere să se afișeze în ordine &amp;#039;&amp;#039;&amp;#039;strict crescătoare&amp;#039;&amp;#039;&amp;#039;, numerele &amp;#039;&amp;#039;&amp;#039;comune&amp;#039;&amp;#039;&amp;#039; tuturor șirurilor.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;intersectiein.txt&amp;#039;&amp;#039;&amp;#039; conține &amp;#039;&amp;#039;&amp;#039;numere naturale&amp;#039;&amp;#039;&amp;#039; separate printr-un spațiu, care formează &amp;#039;&amp;#039;&amp;#039;șiruri crescătoare&amp;#039;&amp;#039;&amp;#039;, fiecare astfel de șir terminându-se cu numărul &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;intersectieout.txt&amp;#039;&amp;#039;&amp;#039; va conține în ordine &amp;#039;&amp;#039;&amp;#039;strict crescătoare&amp;#039;&amp;#039;&amp;#039;, numerele &amp;#039;&amp;#039;&amp;#039;comune&amp;#039;&amp;#039;&amp;#039; tuturor șirurilor.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* Fiecare șir conține maxim &amp;#039;&amp;#039;&amp;#039;100.000&amp;#039;&amp;#039;&amp;#039; de numere.&lt;br /&gt;
* Fiecare număr din șir are valori cuprinse între &amp;#039;&amp;#039;&amp;#039;[1, 2^31 - 1]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* În fișierul &amp;#039;&amp;#039;&amp;#039;intersectiein.txt&amp;#039;&amp;#039;&amp;#039;, pot fi maxim &amp;#039;&amp;#039;&amp;#039;3.000.000&amp;#039;&amp;#039;&amp;#039; numere.&lt;br /&gt;
* Dacă nu avem niciun număr comun se va afișa mesajul &amp;#039;&amp;#039;&amp;#039;nu exista&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; intersectiein.txt&lt;br /&gt;
: 1 2 3 7 10 0 1 4 5 7 10 0 2 3 7 10 0 2 3 5 7 9 10 0&lt;br /&gt;
; intersectieout.txt&lt;br /&gt;
: Datele introduse corespund restricțiilor impuse.&lt;br /&gt;
: 7 10&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Toate cele &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; șiruri :&lt;br /&gt;
: 1 2 3 7 10 &lt;br /&gt;
: 1 4 5 7 10&lt;br /&gt;
: 2 3 7 10 &lt;br /&gt;
: 2 3 5 7 9 10&lt;br /&gt;
au numerele &amp;#039;&amp;#039;&amp;#039;7&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039; valori comune.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; intersectiein.txt&lt;br /&gt;
: 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2147483648 0&lt;br /&gt;
; intersectieout.txt&lt;br /&gt;
: Datele introduse nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# 3960 - Intersectie Siruri&lt;br /&gt;
def validare(serii_val):           # functia de validare a datelor de intrare&lt;br /&gt;
    if len(serii_val) &amp;gt; 3000000:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    for sir in serii_val:&lt;br /&gt;
        if len(sir) &amp;gt; 100000:&lt;br /&gt;
            raise ValueError&lt;br /&gt;
&lt;br /&gt;
        for numar_val in sir:&lt;br /&gt;
            if numar_val &amp;lt; 1 or numar_val &amp;gt; 2**31 - 1:&lt;br /&gt;
                raise ValueError&lt;br /&gt;
&lt;br /&gt;
    fisier_iesire.write(&amp;quot;Datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def intersectie(serii_int):                     # functia de rezolvare&lt;br /&gt;
    intersectie_set = set(serii_int[0])&lt;br /&gt;
    for sir in serii_int[1:]:&lt;br /&gt;
        intersectie_set &amp;amp;= set(sir)&lt;br /&gt;
&lt;br /&gt;
    if intersectie_set:&lt;br /&gt;
        fisier_iesire.write(&amp;#039; &amp;#039;.join(map(str, sorted(intersectie_set))))&lt;br /&gt;
    else:&lt;br /&gt;
        fisier_iesire.write(&amp;quot;nu exista&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    fisier_intrare = open(&amp;quot;intersectiein.txt&amp;quot;, &amp;quot;r&amp;quot;)         # declararea fisierelor&lt;br /&gt;
    fisier_iesire = open(&amp;quot;intersectieout.txt&amp;quot;, &amp;quot;w&amp;quot;)       # fisierul out trebuie declarat cu optiunea &amp;quot;w&amp;quot; (write)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        serii_main = []&lt;br /&gt;
        sir_curent = []&lt;br /&gt;
        for linie in fisier_intrare:&lt;br /&gt;
            for numar_str in linie.split():&lt;br /&gt;
                numar_main = int(numar_str)&lt;br /&gt;
                if numar_main == 0:&lt;br /&gt;
                    serii_main.append(sir_curent)&lt;br /&gt;
                    sir_curent = []&lt;br /&gt;
                else:&lt;br /&gt;
                    sir_curent.append(numar_main)&lt;br /&gt;
&lt;br /&gt;
        validare(serii_main)                 # apelul functiei de validare&lt;br /&gt;
        intersectie(serii_main)               # apelul functiei de rezolvare&lt;br /&gt;
&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        fisier_iesire.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zmicala Narcis</name></author>
	</entry>
</feed>