<?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=0707_-_Sum_K</id>
	<title>0707 - Sum K - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0707_-_Sum_K"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0707_-_Sum_K&amp;action=history"/>
	<updated>2026-05-02T19:32:51Z</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=0707_-_Sum_K&amp;diff=9781&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 07:08, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0707_-_Sum_K&amp;diff=9781&amp;oldid=prev"/>
		<updated>2024-05-18T07:08:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=0707_-_Sum_K&amp;amp;diff=9781&amp;amp;oldid=9287&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0707_-_Sum_K&amp;diff=9287&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: sumk este un joc de perspicacitate, cu N stagii numerotate de la 1 la N. Un joc se termină cu succes dacă jucătorul a parcurs în ordine, de la 1 la N, toate cele N stagii ale jocului şi în fiecare stagiu a obţinut exact K puncte. Fiecare stagiu are N niveluri, numerotate de asemenea de la 1 la N. Jucătorul are posibilitatea să câştige 0, 1, …, K puncte pe oricare nivel al stagiului curent.  Dacă jucătorul se găseşte în stagiul i pe nivelul j și numărul tot...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0707_-_Sum_K&amp;diff=9287&amp;oldid=prev"/>
		<updated>2024-01-08T23:20:49Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: sumk este un joc de perspicacitate, cu N stagii numerotate de la 1 la N. Un joc se termină cu succes dacă jucătorul a parcurs în ordine, de la 1 la N, toate cele N stagii ale jocului şi în fiecare stagiu a obţinut exact K puncte. Fiecare stagiu are N niveluri, numerotate de asemenea de la 1 la N. Jucătorul are posibilitatea să câştige 0, 1, …, K puncte pe oricare nivel al stagiului curent.  Dacă jucătorul se găseşte în stagiul i pe nivelul j și numărul tot...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;sumk este un joc de perspicacitate, cu N stagii numerotate de la 1 la N. Un joc se termină cu succes dacă jucătorul a parcurs în ordine, de la 1 la N, toate cele N stagii ale jocului şi în fiecare stagiu a obţinut exact K puncte. Fiecare stagiu are N niveluri, numerotate de asemenea de la 1 la N. Jucătorul are posibilitatea să câştige 0, 1, …, K puncte pe oricare nivel al stagiului curent.&lt;br /&gt;
&lt;br /&gt;
Dacă jucătorul se găseşte în stagiul i pe nivelul j și numărul total de puncte obţinute până în acel moment în acest stagiu este mai mic decât K, el va trece în mod obligatoriu pe nivelul j+1 al stagiului i. Dacă jucătorul primește cel puţin un punct pe nivelul j și astfel punctajul său în stagiul i devine exact K, atunci jucătorul trece în mod automat pe nivelul j al stagiului i+1 sau termină jocul cu succes dacă i=N.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Cunoscând numărul N de stagii ale jocului şi numărul K de puncte care trebuie să fie obţinute în fiecare stagiu, să se determine numărul de posibilităţi modulo 578537 pentru ca jocul să se termine cu succes.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare sumkin.txt conține pe prima linie două numere naturale N K cu semnificația descrisă anterior.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire sumkout.txt va conține pe prima linie un singur număr natural P reprezentând numărul total de posibilităţi modulo 578537 pentru ca jocul să se termine cu succes.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 ≤ K ≤ N ≤ 500&lt;br /&gt;
*Fie x punctajul final într-un stagiu oarecare. Atunci dacă x ≠  K, jocul se termină cu eșec.&lt;br /&gt;
*Pentru 20% din teste, K ≤ N ≤ 10, iar pentru 30% din teste, K≤N≤100&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; sumkin.txt&lt;br /&gt;
: 2 2&lt;br /&gt;
; sumkout.txt&lt;br /&gt;
: 5&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Sunt N=2 stagii, cu câte N=2 niveluri. Suma este K=2 pe fiecare stagiu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Nivelurile sunt reprezentate de către coloanele matricelor.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Există 5 posibilități ca jocul să se termine cu succes.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; sumkin.txt&lt;br /&gt;
: 3 2&lt;br /&gt;
; sumkout.txt&lt;br /&gt;
: 28&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicatie == &lt;br /&gt;
Sunt N=3 stagii, cu câte N=3 niveluri. Suma este K=2 pe fiecare stagiu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Sunt reprezentate doar câteva dintre cele 28 de posibilități.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#0707 - Sum K&lt;br /&gt;
def numar_posibilitati(N, K):&lt;br /&gt;
    MOD = 578537&lt;br /&gt;
&lt;br /&gt;
    if not (1 &amp;lt;= K &amp;lt;= N &amp;lt;= 500):&lt;br /&gt;
        print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    # Inițializare matrice dp cu zero-uri&lt;br /&gt;
    dp = [[0] * (K + 1) for _ in range(N + 1)]&lt;br /&gt;
&lt;br /&gt;
    # Caz de bază: dp[i][0] = 1 pentru orice i&lt;br /&gt;
    for i in range(N + 1):&lt;br /&gt;
        dp[i][0] = 1&lt;br /&gt;
&lt;br /&gt;
    # Calculul dinamic pentru numărul de posibilități&lt;br /&gt;
    for i in range(1, N + 1):&lt;br /&gt;
        for j in range(1, K + 1):&lt;br /&gt;
            dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) % MOD&lt;br /&gt;
&lt;br /&gt;
    return dp[N][K]&lt;br /&gt;
&lt;br /&gt;
# Citirea datelor de intrare din fișierul &amp;quot;sumkin.txt&amp;quot;&lt;br /&gt;
try:&lt;br /&gt;
    with open(&amp;quot;sumkin.txt&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
        N, K = map(int, file.readline().split())&lt;br /&gt;
except Exception as e:&lt;br /&gt;
    print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
    exit()&lt;br /&gt;
&lt;br /&gt;
# Calculul rezultatului și afișarea acestuia în fișierul &amp;quot;sumkout.txt&amp;quot;&lt;br /&gt;
result = numar_posibilitati(N, K)&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;sumkout.txt&amp;quot;, &amp;quot;w&amp;quot;) as file:&lt;br /&gt;
    file.write(str(result) + &amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>