<?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=4158_-_Grade11</id>
	<title>4158 - Grade11 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4158_-_Grade11"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4158_-_Grade11&amp;action=history"/>
	<updated>2026-06-17T05:58:29Z</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=4158_-_Grade11&amp;diff=8974&amp;oldid=prev</id>
		<title>Codrut Borcutean: Pagină nouă: == Cerinţa == Se dă lista arcelor unui graf orientat. Să se determine nodurile care au gradul exterior divizibil cu gradul interior sau gradul interior divizibil cu gradul exterior. Un nod care are gradul exterior sau gradul interior egal cu &#039;&#039;&#039;0&#039;&#039;&#039; nu respectă condiția cerută. == Date de intrare == Programul citește de la tastatură numărul &#039;&#039;&#039;n&#039;&#039;&#039; de noduri și numărul &#039;&#039;&#039;m&#039;&#039;&#039; de arce, iar apoi lista arcelor, formată din &#039;&#039;&#039;m&#039;&#039;&#039; perechi de forma &#039;&#039;&#039;i&#039;&#039;&#039; &#039;&#039;&#039;j&#039;&#039;&#039;, c...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4158_-_Grade11&amp;diff=8974&amp;oldid=prev"/>
		<updated>2024-01-04T14:49:27Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerinţa == Se dă lista arcelor unui graf orientat. Să se determine nodurile care au gradul exterior divizibil cu gradul interior sau gradul interior divizibil cu gradul exterior. Un nod care are gradul exterior sau gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; nu respectă condiția cerută. == Date de intrare == Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de noduri și numărul &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; de arce, iar apoi lista arcelor, formată din &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; perechi de forma &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;j&amp;#039;&amp;#039;&amp;#039;, c...&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;
Se dă lista arcelor unui graf orientat. Să se determine nodurile care au gradul exterior divizibil cu gradul interior sau gradul interior divizibil cu gradul exterior. Un nod care are gradul exterior sau gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; nu respectă condiția cerută.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de noduri și numărul &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; de arce, iar apoi lista arcelor, formată din &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039; perechi de forma &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;j&amp;#039;&amp;#039;&amp;#039;, cu semnificația că există arc orientat de la &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;j&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran nodurile cerute, ordonate crescător, separate prin exact un spațiu. Dacă nu există noduri care să respecte proprietatea că au gradul exterior divizibil cu gradul interior sau gradul interior divizibil cu gradul exterior, atunci se va afișa &amp;#039;&amp;#039;&amp;#039;NU EXISTA&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ n ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 6 9&lt;br /&gt;
 1 2&lt;br /&gt;
 1 3&lt;br /&gt;
 1 5&lt;br /&gt;
 3 5&lt;br /&gt;
 4 1&lt;br /&gt;
 3 4&lt;br /&gt;
 5 1&lt;br /&gt;
 6 1&lt;br /&gt;
 6 3&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare corespund restrictiilor impuse&lt;br /&gt;
 1 3 4 5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 102 0&lt;br /&gt;
; Iesire&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Vârful &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; are gradul exterior egal cu &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039; și gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039;. Vârful &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039; are gradul exterior egal cu &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; și gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;. Vârful &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; are gradul exterior egal cu &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; și gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;. Vârful &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039; are gradul exterior egal cu &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; și gradul interior egal cu &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def verifica_restrictii(n, arce):&lt;br /&gt;
    # Verifică dacă datele de intrare respectă restricțiile&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 100) or not all(1 &amp;lt;= i &amp;lt;= n and 1 &amp;lt;= j &amp;lt;= n for i, j in arce):&lt;br /&gt;
        return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def noduri_grad_divizibil(n, arce):&lt;br /&gt;
    # Inițializează gradele interioare și exterioare ale nodurilor&lt;br /&gt;
    grad_interior = [0] * (n + 1)&lt;br /&gt;
    grad_exterior = [0] * (n + 1)&lt;br /&gt;
&lt;br /&gt;
    # Calculează gradele interioare și exterioare ale nodurilor&lt;br /&gt;
    for i, j in arce:&lt;br /&gt;
        grad_exterior[i] += 1&lt;br /&gt;
        grad_interior[j] += 1&lt;br /&gt;
&lt;br /&gt;
    # Determină nodurile care au gradul exterior divizibil cu gradul interior&lt;br /&gt;
    # sau gradul interior divizibil cu gradul exterior&lt;br /&gt;
    noduri = [i for i in range(1, n + 1) if grad_interior[i] != 0 and grad_exterior[i] != 0 and&lt;br /&gt;
              (grad_exterior[i] % grad_interior[i] == 0 or grad_interior[i] % grad_exterior[i] == 0)]&lt;br /&gt;
&lt;br /&gt;
    return noduri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, m = map(int, input().split())&lt;br /&gt;
    arce = [tuple(map(int, input().split())) for _ in range(m)]&lt;br /&gt;
&lt;br /&gt;
    # Verifică dacă datele de intrare respectă restricțiile&lt;br /&gt;
    if not verifica_restrictii(n, arce):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    # Determină nodurile care au gradul exterior divizibil cu gradul interior&lt;br /&gt;
    # sau gradul interior divizibil cu gradul exterior&lt;br /&gt;
    noduri = noduri_grad_divizibil(n, arce)&lt;br /&gt;
&lt;br /&gt;
    # Afiseaza rezultatul&lt;br /&gt;
    if noduri:&lt;br /&gt;
        print(&amp;#039; &amp;#039;.join(map(str, sorted(noduri))))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;NU EXISTA&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Codrut Borcutean</name></author>
	</entry>
</feed>