<?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=1022_-_Fractii_2</id>
	<title>1022 - Fractii 2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1022_-_Fractii_2"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1022_-_Fractii_2&amp;action=history"/>
	<updated>2026-05-02T17:11:12Z</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=1022_-_Fractii_2&amp;diff=10018&amp;oldid=prev</id>
		<title>RebecaBud: Pagină nouă: == Enunt == Numărul 1 poate fi scris în diverse moduri ca sumă de fracţii cu numărătorul 1 şi numitorul o putere a lui 2. De exemplu:  &#039;&#039;&#039;1 = 1/2 + 1/2 = 1/2 + 1/4 + 1/8 + 1/8 = 1/8 + 1/4 + 1/2 + 1/8&#039;&#039;&#039;  Două scrieri nu sunt considerate distincte dacă folosesc aceleaşi fracţii scrise în altă ordine. În exemplul de mai sus ultimele două scrieri nu sunt distincte. == Cerinţa == Pentru N – număr natural nenul să se determine: a) O modalitate de scriere a num...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1022_-_Fractii_2&amp;diff=10018&amp;oldid=prev"/>
		<updated>2024-06-03T16:57:49Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Numărul 1 poate fi scris în diverse moduri ca sumă de fracţii cu numărătorul 1 şi numitorul o putere a lui 2. De exemplu:  &amp;#039;&amp;#039;&amp;#039;1 = 1/2 + 1/2 = 1/2 + 1/4 + 1/8 + 1/8 = 1/8 + 1/4 + 1/2 + 1/8&amp;#039;&amp;#039;&amp;#039;  Două scrieri nu sunt considerate distincte dacă folosesc aceleaşi fracţii scrise în altă ordine. În exemplul de mai sus ultimele două scrieri nu sunt distincte. == Cerinţa == Pentru N – număr natural nenul să se determine: a) O modalitate de scriere a num...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Numărul 1 poate fi scris în diverse moduri ca sumă de fracţii cu numărătorul 1 şi numitorul o putere a lui 2. De exemplu:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 = 1/2 + 1/2 = 1/2 + 1/4 + 1/8 + 1/8 = 1/8 + 1/4 + 1/2 + 1/8&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Două scrieri nu sunt considerate distincte dacă folosesc aceleaşi fracţii scrise în altă ordine. În exemplul de mai sus ultimele două scrieri nu sunt distincte.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Pentru N – număr natural nenul să se determine:&lt;br /&gt;
a) O modalitate de scriere a numărului 1 ca sumă de exact N fracţii cu numărătorul 1 şi numitorul o putere a lui 2.&lt;br /&gt;
b) Numărul de scrieri distincte a numărului 1 ca sumă de exact N fracţii cu numărătorul 1 şi numitorul o putere a lui 2. Deoarece acest număr poate fi foarte mare acest număr trebuie calculat modulo 100003.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare fractii2.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2.&lt;br /&gt;
Pe a doua linie se găseşte un singur număr N natural – reprezentând numărul de fracţii&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Dacă valoarea lui p este 1, se va rezolva numai punctul a) din cerinţă. În acest caz, în fişierul de ieşire fractii2.out se vor scrie, pe o singură linie, N numere naturale separate prin câte un spaţiu reprezentând cei N exponenţi ai lui 2 din scrierea solicitată în prima cerinţă. Astfel, dacă numerele afişate sunt m1,m2,…,mn&lt;br /&gt;
 atunci există scrierea 1=12m1+12m2+…+12mn&lt;br /&gt;
 .&lt;br /&gt;
Dacă valoarea lui p este 2, se va rezolva numai punctul b) din cerinţă. În acest caz, în fişierul de ieşire fractii2.out se va scrie un număr natural reprezentând răspunsul la a doua cerinţă, adică numărul de scrieri distincte a numărului 1 ca sumă de N fracţii cu numărătorul 1 şi numitorul o putere a lui 2 (modulo 100003).&lt;br /&gt;
&lt;br /&gt;
Restricţii&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2 ≤ N ≤ 2000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru prima cerinţă se acordă 20% din punctaj.&lt;br /&gt;
* Pentru a doua cerinţă de acordă 80% din punctaj.&lt;br /&gt;
* Rezultatul pentru a doua cerinţă trebuie afişat modulo 100003&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; fractii2.in&lt;br /&gt;
 &lt;br /&gt;
 1&lt;br /&gt;
 4&lt;br /&gt;
; fractii2.out&lt;br /&gt;
&lt;br /&gt;
  2 2 2 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; fractii2.in&lt;br /&gt;
&lt;br /&gt;
  2 &lt;br /&gt;
  4&lt;br /&gt;
; fractii2.out&lt;br /&gt;
&lt;br /&gt;
 2&lt;br /&gt;
== Explicaţie ==&lt;br /&gt;
Primul exemplu:&lt;br /&gt;
&lt;br /&gt;
1 = 1/2 + 1/4 + 1/8 + 1/8 = 1/4 + 1/4 + 1/4 + 1/4&lt;br /&gt;
Răspunsul corespunde celei de-a doua scrieri dar există şi alte variante corecte de răspuns. De exemplu, 3 1 2 3 se consideră răspuns corect.&lt;br /&gt;
Atenţie! Pentru acest test se va afişa doar rezultatul la cerinţa a).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al doilea exemplu:&lt;br /&gt;
&lt;br /&gt;
1 = 1/2 + 1/4 + 1/8 + 1/8 = 1/4 + 1/4 + 1/4 + 1/4&lt;br /&gt;
&lt;br /&gt;
Acestea sunt singurele scrieri distincte.&lt;br /&gt;
Atenţie! Pentru acest test se va afişa doar rezultatul la cerinţa b).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def write_fractions(N):&lt;br /&gt;
    exponents = [1] * N&lt;br /&gt;
    return exponents&lt;br /&gt;
&lt;br /&gt;
def count_distinct_writings(N):&lt;br /&gt;
    MOD = 100003&lt;br /&gt;
    if N == 2:&lt;br /&gt;
        return 1&lt;br /&gt;
&lt;br /&gt;
    dp = [0] * (N + 1)&lt;br /&gt;
    dp[0] = 1&lt;br /&gt;
    for i in range(1, N):&lt;br /&gt;
        for j in range(i, N + 1):&lt;br /&gt;
            dp[j] = (dp[j] + dp[j - i]) % MOD&lt;br /&gt;
&lt;br /&gt;
    return dp[N]&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;fractii2.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        p = int(fin.readline())&lt;br /&gt;
        N = int(fin.readline())&lt;br /&gt;
&lt;br /&gt;
    if p == 1:&lt;br /&gt;
        with open(&amp;quot;fractii2.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
            exponents = write_fractions(N)&lt;br /&gt;
            fout.write(&amp;quot; &amp;quot;.join(map(str, exponents)))&lt;br /&gt;
    elif p == 2:&lt;br /&gt;
        with open(&amp;quot;fractii2.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
            distinct_writings = count_distinct_writings(N)&lt;br /&gt;
            fout.write(str(distinct_writings % 100003))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>RebecaBud</name></author>
	</entry>
</feed>