<?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=1559_-_Minge</id>
	<title>1559 - Minge - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1559_-_Minge"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1559_-_Minge&amp;action=history"/>
	<updated>2026-05-01T14:46:47Z</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=1559_-_Minge&amp;diff=9006&amp;oldid=prev</id>
		<title>Corjuc Eunice: Pagină nouă: &lt;code&gt;N&lt;/code&gt; copii, numerotați de la &lt;code&gt;1&lt;/code&gt; la &lt;code&gt;N&lt;/code&gt;, se aşează în cerc, unul lângă altul, în ordinea crescătoare a numerelor lor, copilul cu numărul &lt;code&gt;N&lt;/code&gt; ajungând să fie situat lângă copilul cu numărul &lt;code&gt;1&lt;/code&gt;.  Un copil din cerc are o minge. El o aruncă unui alt copil din cerc. Acesta o aruncă și el unui alt copil din cerc care nu a atins vreodată mingea, … șamd. Fiecare aruncare este notată printr-o pereche de numer...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1559_-_Minge&amp;diff=9006&amp;oldid=prev"/>
		<updated>2024-01-04T18:53:10Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; copii, numerotați de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, se aşează în cerc, unul lângă altul, în ordinea crescătoare a numerelor lor, copilul cu numărul &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; ajungând să fie situat lângă copilul cu numărul &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.  Un copil din cerc are o minge. El o aruncă unui alt copil din cerc. Acesta o aruncă și el unui alt copil din cerc care nu a atins vreodată mingea, … șamd. Fiecare aruncare este notată printr-o pereche de numer...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; copii, numerotați de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, se aşează în cerc, unul lângă altul, în ordinea crescătoare a numerelor lor, copilul cu numărul &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; ajungând să fie situat lângă copilul cu numărul &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Un copil din cerc are o minge. El o aruncă unui alt copil din cerc. Acesta o aruncă și el unui alt copil din cerc care nu a atins vreodată mingea, … șamd. Fiecare aruncare este notată printr-o pereche de numere naturale distincte &amp;lt;code&amp;gt;(X,Y)&amp;lt;/code&amp;gt; cu semnificația că copilul cu numărul &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; aruncă mingea copilului cu numărul &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; care nu a mai atins mingea până în acel moment.&lt;br /&gt;
&lt;br /&gt;
= Cerințe =&lt;br /&gt;
Cunoscându-se numerele &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; și cele &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; perechi de numere corespunzătoare celor &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; aruncări să se determine:&lt;br /&gt;
&lt;br /&gt;
1) Numărul copiilor care nu ating niciodată mingea.&lt;br /&gt;
&lt;br /&gt;
2) Traseul parcurs de minge plecând de la copilul care are mingea la începutul jocului, până la copilul care nu mai aruncă mingea.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt; conține&lt;br /&gt;
&lt;br /&gt;
– pe prima linie, un număr natural &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;; pentru toate testele de intrare, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; poate avea doar valoarea &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sau valoarea &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
– pe a doua linie, cele două numere naturale &amp;lt;code&amp;gt;N K&amp;lt;/code&amp;gt;, separate printr-un spațiu.&lt;br /&gt;
&lt;br /&gt;
– pe fiecare dintre următoarele &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; linii (câte una pentru fiecare aruncare), câte o pereche de numere naturale &amp;lt;code&amp;gt;X Y&amp;lt;/code&amp;gt;, separate printr-un spațiu, cu semnificația: copilul cu numărul &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; aruncă mingea copilului cu numărul &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
– Dacă valoarea lui &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, atunci se va rezolva numai cerința &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. În acest caz, fişierul &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt; va conţine pe prima linie un număr natural reprezentând numărul copiilor care nu ating niciodată mingea&lt;br /&gt;
&lt;br /&gt;
– Dacă valoarea lui &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; este &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;, atunci se va rezolva numai cerința &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. În acest caz, fişierul &amp;lt;code&amp;gt;ouput.txt&amp;lt;/code&amp;gt; va conţine pe prima linie, traseul parcurs de minge plecând de la copilul care are mingea la începutul jocului, până la copilul care nu mai aruncă mingea; traseul este descris prin șirul numerelor copiilor care ating mingea, separate prin câte un spațiu, în ordinea în care este aruncată mingea.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;6 ≤ N ≤ 10000&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ K ≤ N-1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
7 4&lt;br /&gt;
&lt;br /&gt;
4 3&lt;br /&gt;
&lt;br /&gt;
2 6&lt;br /&gt;
&lt;br /&gt;
3 1&lt;br /&gt;
&lt;br /&gt;
6 4&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;p=1&amp;lt;/code&amp;gt;. Se rezolvă doar cerința &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. Sunt &amp;lt;code&amp;gt;N=7&amp;lt;/code&amp;gt; copii. Se fac &amp;lt;code&amp;gt;K=4&amp;lt;/code&amp;gt; aruncări. Sunt &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; copii care nu ating mingea, cei cu numerele &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
7 4&lt;br /&gt;
&lt;br /&gt;
4 3&lt;br /&gt;
&lt;br /&gt;
2 6&lt;br /&gt;
&lt;br /&gt;
3 1&lt;br /&gt;
&lt;br /&gt;
6 4&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
2 6 4 3 1&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;p=2&amp;lt;/code&amp;gt;. Se rezolvă doar cerința &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;. Sunt &amp;lt;code&amp;gt;N=7&amp;lt;/code&amp;gt; copii. Se fac &amp;lt;code&amp;gt;K=4&amp;lt;/code&amp;gt; aruncări.&lt;br /&gt;
&lt;br /&gt;
Traseul parcurs de minge pornește de la copilul cu numărul &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; și se termină la copilul cu numărul &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; este: &amp;lt;code&amp;gt;2 6 4 3 1&amp;lt;/code&amp;gt;, deoarece se fac aruncările: &amp;lt;code&amp;gt;(2,6),(6,4),(4,3),(3,1)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
99999999 4&lt;br /&gt;
&lt;br /&gt;
4 3&lt;br /&gt;
&lt;br /&gt;
2 6&lt;br /&gt;
&lt;br /&gt;
3 1&lt;br /&gt;
&lt;br /&gt;
6 4&lt;br /&gt;
&lt;br /&gt;
Ouput:&lt;br /&gt;
&lt;br /&gt;
Constrangeri neindeplinite&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def ver(n,m):&lt;br /&gt;
    if not(6&amp;lt;=n&amp;lt;=10000):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not(1&amp;lt;=m&amp;lt;=n-1):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;input.txt&amp;quot;, &amp;#039;r&amp;#039;) as fin, open(&amp;quot;output.txt&amp;quot;, &amp;#039;w&amp;#039;) as fout:&lt;br /&gt;
    freq = [0] * 10001&lt;br /&gt;
    col1 = [0] * 10001&lt;br /&gt;
    col2 = [0] * 10001&lt;br /&gt;
&lt;br /&gt;
    t=int(fin.readline())&lt;br /&gt;
    n, m = map(int, fin.readline().split())&lt;br /&gt;
    &lt;br /&gt;
    ver(n,m)&lt;br /&gt;
&lt;br /&gt;
    if t == 1:&lt;br /&gt;
        for _ in range(m):&lt;br /&gt;
            x, y = map(int, fin.readline().split())&lt;br /&gt;
            freq[x] += 1&lt;br /&gt;
            freq[y] += 1&lt;br /&gt;
&lt;br /&gt;
        nr = sum(1 for i in range(1, n + 1) if freq[i] == 0)&lt;br /&gt;
        fout.write(str(nr))&lt;br /&gt;
    elif t == 2:&lt;br /&gt;
        for _ in range(m):&lt;br /&gt;
            x, y = map(int, fin.readline().split())&lt;br /&gt;
            freq[x] = y&lt;br /&gt;
            col1[x] += 1&lt;br /&gt;
            col2[y] += 1&lt;br /&gt;
&lt;br /&gt;
        start, finish = 0, 0&lt;br /&gt;
        for i in range(1, 10001):&lt;br /&gt;
            if col1[i] &amp;gt; 0 and col2[i] == 0:&lt;br /&gt;
                start = i&lt;br /&gt;
            if col2[i] &amp;gt; 0 and col1[i] == 0:&lt;br /&gt;
                finish = i&lt;br /&gt;
&lt;br /&gt;
        z = start&lt;br /&gt;
        fout.write(str(start) + &amp;#039; &amp;#039;)&lt;br /&gt;
        while freq[z] != finish:&lt;br /&gt;
            fout.write(str(freq[z]) + &amp;#039; &amp;#039;)&lt;br /&gt;
            z = freq[z]&lt;br /&gt;
&lt;br /&gt;
        fout.write(str(finish))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Corjuc Eunice</name></author>
	</entry>
</feed>