<?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=4301_-_Gustare</id>
	<title>4301 - Gustare - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4301_-_Gustare"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4301_-_Gustare&amp;action=history"/>
	<updated>2026-05-03T13:29:13Z</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=4301_-_Gustare&amp;diff=7695&amp;oldid=prev</id>
		<title>AntalKrisztian: Pagină nouă: == Cerinţa == A venit ora mesei pentru Por Costel (masa dintre prânz și cină). Scormonind printr-o grădină, el descoperă un număr de &#039;&#039;&#039;N&#039;&#039;&#039; coceni de porumb și &#039;&#039;&#039;M&#039;&#039;&#039; mere. Masa lui Por Costel va consta în exact un cocean și un măr. Însă, mai nou, fanii săi l-au atenționat că trebuie să aibă grijă ce mănâncă. Fiecare cocean și fiecare măr are o valoare nutritivă. Valoarea nutritivă a mesei va fi valoarea nutritivă a coceanului ales + valoarea nut...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4301_-_Gustare&amp;diff=7695&amp;oldid=prev"/>
		<updated>2023-12-09T15:43:09Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == A venit ora mesei pentru Por Costel (masa dintre prânz și cină). Scormonind printr-o grădină, el descoperă un număr de &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; coceni de porumb și &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; mere. Masa lui Por Costel va consta în exact un cocean și un măr. Însă, mai nou, fanii săi l-au atenționat că trebuie să aibă grijă ce mănâncă. Fiecare cocean și fiecare măr are o valoare nutritivă. Valoarea nutritivă a mesei va fi valoarea nutritivă a coceanului ales + valoarea nut...&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;
A venit ora mesei pentru Por Costel (masa dintre prânz și cină). Scormonind printr-o grădină, el descoperă un număr de &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; coceni de porumb și &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; mere. Masa lui Por Costel va consta în exact un cocean și un măr. Însă, mai nou, fanii săi l-au atenționat că trebuie să aibă grijă ce mănâncă. Fiecare cocean și fiecare măr are o valoare nutritivă. Valoarea nutritivă a mesei va fi valoarea nutritivă a coceanului ales + valoarea nutritiva a mărului ales. Dându-se valorile nutritive ale cocenilor și ale merelor, Por Costel vă întreabă dacă există o masă pe care o poate lua cu valoare nutritivă &amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;. Pentru că Por Costel vrea sa mănânce de mai multe ori între prânz și cină, el va vă pune &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039; întrebări de forma aceasta.&lt;br /&gt;
(Întrebările sunt independente între ele, a nu se considera că după o întrebare se elimină perechea cocean-mar aleasă).&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Pe prima linie a fișierului &amp;#039;&amp;#039;&amp;#039;gustarein.txt&amp;#039;&amp;#039;&amp;#039; se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;: numărul de coceni. Pe a doua linie se găsește o secvență de &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin câte un spațiu (valorile nutritive ale cocenilor). Pe a treia linie se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;: numărul de mere. Pe a patra linie se găsește o secvență de &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin câte un spațiu (valorile nutritive ale merelor). Pe a cincea linie se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;, numărul de întrebări ale lui Por Costel. Pe a sasea linie se gasește o secvență de &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin câte un spațiu, al &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039;-lea număr fiind valoarea dorită pentru cea de a i-a masă.&lt;br /&gt;
== Date de ieşire ==&lt;br /&gt;
În fișierul &amp;#039;&amp;#039;&amp;#039;gustareout.txt&amp;#039;&amp;#039;&amp;#039; se vor scrie &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039; linii corespunzătoare celor &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039; întrebări. A &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039;-a linie va conține mesajul &amp;#039;&amp;#039;&amp;#039;DA&amp;#039;&amp;#039;&amp;#039; dacă se poate forma valoarea nutritivă pentru a &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039;-a masă și &amp;#039;&amp;#039;&amp;#039;NU&amp;#039;&amp;#039;&amp;#039; în caz contrar.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;N, M ≤ 500.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;T ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0 ≤&amp;#039;&amp;#039;&amp;#039; valoare nutritiva a unui aliment &amp;#039;&amp;#039;&amp;#039;≤ 1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0 ≤&amp;#039;&amp;#039;&amp;#039; valoarea X a unei intrebari &amp;#039;&amp;#039;&amp;#039;≤ 2.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru &amp;#039;&amp;#039;&amp;#039;20&amp;#039;&amp;#039;&amp;#039; de puncte, &amp;#039;&amp;#039;&amp;#039;N, M ≤ 1000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru alte &amp;#039;&amp;#039;&amp;#039;50&amp;#039;&amp;#039;&amp;#039; de puncte, &amp;#039;&amp;#039;&amp;#039;T ≤ 20&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; gustarein.txt&lt;br /&gt;
 4&lt;br /&gt;
 2 2 3 5&lt;br /&gt;
 3&lt;br /&gt;
 2 4 6&lt;br /&gt;
 5&lt;br /&gt;
 6 20 10 11 7&lt;br /&gt;
; gustareout.txt&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 DA&lt;br /&gt;
 NU&lt;br /&gt;
 NU&lt;br /&gt;
 DA &lt;br /&gt;
 DA&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; gustarein.txt&lt;br /&gt;
 jgjikfikm&lt;br /&gt;
; gustareout.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# Funcția de validare verifică dacă datele de intrare sunt în intervalul specificat&lt;br /&gt;
def validare(n_validare, m_validare, t_validare, coceni_validare, mere_validare, intrebari_validare):&lt;br /&gt;
    if n_validare &amp;lt; 1 or n_validare &amp;gt; 500000:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
    if m_validare &amp;lt; 1 or m_validare &amp;gt; 500000:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
    if t_validare &amp;lt; 1 or t_validare &amp;gt; 100:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
    for valoare in coceni_validare + mere_validare:&lt;br /&gt;
        if valoare &amp;lt; 0 or valoare &amp;gt; 1000000000:&lt;br /&gt;
            raise ValueError&lt;br /&gt;
    for x in intrebari_validare:&lt;br /&gt;
        if x &amp;lt; 0 or x &amp;gt; 2000000000:&lt;br /&gt;
            raise ValueError&lt;br /&gt;
    file_out.write(&amp;quot;Datele de intrare corespund restrictiilor impuse.\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Funcția exista_masa verifică dacă există o masă cu valoare nutritivă X&lt;br /&gt;
def exista_masa(coceni, mere, intrebari):&lt;br /&gt;
    raspunsuri_creare = []&lt;br /&gt;
    for x in intrebari:&lt;br /&gt;
        exista = &amp;#039;NU&amp;#039;&lt;br /&gt;
        for cocean in coceni:&lt;br /&gt;
            if x - cocean in mere:&lt;br /&gt;
                exista = &amp;#039;DA&amp;#039;&lt;br /&gt;
                break&lt;br /&gt;
        raspunsuri_creare.append(exista)&lt;br /&gt;
    return raspunsuri_creare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    file_in = open(&amp;quot;gustarein.txt&amp;quot;, &amp;quot;r&amp;quot;)&lt;br /&gt;
    file_out = open(&amp;quot;gustareout.txt&amp;quot;, &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        # Citim numărul de coceni, numărul de mere și numărul de întrebări&lt;br /&gt;
        n_main = int(file_in.readline())&lt;br /&gt;
        coceni_main = list(map(int, file_in.readline().split()))&lt;br /&gt;
        m_main = int(file_in.readline())&lt;br /&gt;
        mere_main = list(map(int, file_in.readline().split()))&lt;br /&gt;
        t_main = int(file_in.readline())&lt;br /&gt;
        intrebari_main = list(map(int, file_in.readline().split()))&lt;br /&gt;
        # Validăm datele de intrare&lt;br /&gt;
        validare(n_main, m_main, t_main, coceni_main, mere_main, intrebari_main)&lt;br /&gt;
        # Verificăm dacă există o masă cu valoare nutritivă X pentru fiecare întrebare&lt;br /&gt;
        raspunsuri = exista_masa(coceni_main, mere_main, intrebari_main)&lt;br /&gt;
        # Scriem răspunsurile în fișierul de ieșire&lt;br /&gt;
        for raspuns in raspunsuri:&lt;br /&gt;
            file_out.write(raspuns + &amp;#039;\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
    # Dacă datele de intrare nu sunt valide, afișăm un mesaj de eroare&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        file_out.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
    # Dacă datele de intrare sunt incomplete, afișăm un mesaj de eroare&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        file_out.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>AntalKrisztian</name></author>
	</entry>
</feed>