<?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=2644_-_clase</id>
	<title>2644 - clase - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2644_-_clase"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2644_-_clase&amp;action=history"/>
	<updated>2026-05-01T08:23:50Z</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=2644_-_clase&amp;diff=9031&amp;oldid=prev</id>
		<title>Brianna Waltner: Pagină nouă: == Cerinţa == Într-o școală sunt &#039;&#039;&#039;n&#039;&#039;&#039; clase, fiecare având un număr diferit de elevi. Școală primește &#039;&#039;&#039;m&#039;&#039;&#039; pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;clasein.txt&#039;&#039;&#039; va avea pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2644_-_clase&amp;diff=9031&amp;oldid=prev"/>
		<updated>2024-01-04T22:18:36Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Într-o școală sunt &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; clase, fiecare având un număr diferit de elevi. Școală primește &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;clasein.txt&amp;#039;&amp;#039;&amp;#039; va avea pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar...&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-o școală sunt &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; clase, fiecare având un număr diferit de elevi. Școală primește &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; pachete cu cărți, fiecare cu un număr diferit de cărți. Pentru ca o clasa să primească un pachet, numărul elevilor din acea clasa trebuie să fie egal cu numărul cărților din pachet. Să se determine câte clase primesc un pachet de cărți.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;clasein.txt&amp;#039;&amp;#039;&amp;#039; va avea pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe următoarea linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale ordonate crescător, separate prin spații, reprezentând numărul de elevi din fiecare clasa. Pe următoarea linie numărul &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, și pe următoarea linie &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; numere, reprezentând numărul de cărți din fiecare pachet.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;claseout.txt&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie numărul de clase care primesc pachete cu cărți.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 &amp;amp;les; n, m &amp;amp;les; 10.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* într-un pachet sunt maximum &amp;#039;&amp;#039;&amp;#039;1.000.000.000.000&amp;#039;&amp;#039;&amp;#039; cărți.&lt;br /&gt;
* într-o clasă sunt maximum &amp;#039;&amp;#039;&amp;#039;1.000.000.000.000&amp;#039;&amp;#039;&amp;#039; elevi.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
;&amp;#039;&amp;#039;&amp;#039;clasein.txt&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 5&lt;br /&gt;
 16 17 20 24 30&lt;br /&gt;
 4&lt;br /&gt;
 78 20 17 74&lt;br /&gt;
;&amp;#039;&amp;#039;&amp;#039;claseout.txt&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 2&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
;&amp;#039;&amp;#039;&amp;#039;clasein.txt&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 100000&lt;br /&gt;
 16 17 20 24 30&lt;br /&gt;
 4&lt;br /&gt;
 78 20 17 74&lt;br /&gt;
;&amp;#039;&amp;#039;&amp;#039;claseout.txt&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def binary_search(arr, x):&lt;br /&gt;
    low = 0&lt;br /&gt;
    high = len(arr) - 1&lt;br /&gt;
    while low &amp;lt;= high:&lt;br /&gt;
        mid = (high + low) // 2&lt;br /&gt;
        if arr[mid] &amp;lt; x:&lt;br /&gt;
            low = mid + 1&lt;br /&gt;
        elif arr[mid] &amp;gt; x:&lt;br /&gt;
            high = mid - 1&lt;br /&gt;
        else:&lt;br /&gt;
            return mid&lt;br /&gt;
    return -1&lt;br /&gt;
&lt;br /&gt;
with open(&amp;#039;clasein.txt&amp;#039;, &amp;#039;r&amp;#039;) as fin:&lt;br /&gt;
    n = int(fin.readline().strip())&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit(1)&lt;br /&gt;
    students = sorted(list(map(int, fin.readline().split())))&lt;br /&gt;
    if any(s &amp;lt; 1 or s &amp;gt; 1000000000000 for s in students):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit(1)&lt;br /&gt;
    m = int(fin.readline().strip())&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 10000:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit(1)&lt;br /&gt;
    books = sorted(list(map(int, fin.readline().split())))&lt;br /&gt;
    if any(b &amp;lt; 1 or b &amp;gt; 1000000000000 for b in books):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        exit(1)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
count = 0&lt;br /&gt;
for s in students:&lt;br /&gt;
    index = binary_search(books, s)&lt;br /&gt;
    if index != -1:&lt;br /&gt;
        count += 1&lt;br /&gt;
        books.pop(index)&lt;br /&gt;
&lt;br /&gt;
with open(&amp;#039;claseout.txt&amp;#039;, &amp;#039;w&amp;#039;) as fout:&lt;br /&gt;
    fout.write(str(count))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
 Doar clasa cu &amp;#039;&amp;#039;&amp;#039;20&amp;#039;&amp;#039;&amp;#039; de elevi și cea cu &amp;#039;&amp;#039;&amp;#039;17&amp;#039;&amp;#039;&amp;#039; elevi vor primi pachete cu cărți.&lt;/div&gt;</summary>
		<author><name>Brianna Waltner</name></author>
	</entry>
</feed>