<?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=1081_-_Numar_3</id>
	<title>1081 - Numar 3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1081_-_Numar_3"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1081_-_Numar_3&amp;action=history"/>
	<updated>2026-05-02T05:17:44Z</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=1081_-_Numar_3&amp;diff=9930&amp;oldid=prev</id>
		<title>Benzar Ioan: /* Cerința */</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1081_-_Numar_3&amp;diff=9930&amp;oldid=prev"/>
		<updated>2024-06-03T13:02:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Cerința&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:02, 3 June 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Cerința ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Cerința ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Se dă un număr raţional strict pozitiv q, sub formă de fracţie zecimală.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Se dă un număr raţional strict pozitiv q, sub formă de fracţie zecimală.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Să se determine două numere naturale a şi b astfel q=a/b&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Să se determine două numere naturale a şi b astfel q=a/b încât iar modulul diferenţei dintre a şi b să fie minim.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;încât iar modulul diferenţei dintre a şi b să fie minim.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Date de intrare ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Date de intrare ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fișierul de intrare numar3.in conține&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fișierul de intrare numar3.in conține&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1081_-_Numar_3&amp;diff=9929&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Se dă un număr raţional strict pozitiv q, sub formă de fracţie zecimală. Să se determine două numere naturale a şi b astfel q=a/b  încât iar modulul diferenţei dintre a şi b să fie minim. == Date de intrare == Fișierul de intrare numar3.in conține  *pe prima linie două valori naturale ni şi nz. ni reprezintă numărul de cifre care formează partea întreagă a lui q iar nz reprezintă numărul de cifre care formează partea fracţionara a lui...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1081_-_Numar_3&amp;diff=9929&amp;oldid=prev"/>
		<updated>2024-06-03T13:01:50Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Se dă un număr raţional strict pozitiv q, sub formă de fracţie zecimală. Să se determine două numere naturale a şi b astfel q=a/b  încât iar modulul diferenţei dintre a şi b să fie minim. == Date de intrare == Fișierul de intrare numar3.in conține  *pe prima linie două valori naturale ni şi nz. ni reprezintă numărul de cifre care formează partea întreagă a lui q iar nz reprezintă numărul de cifre care formează partea fracţionara a lui...&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ă un număr raţional strict pozitiv q, sub formă de fracţie zecimală.&lt;br /&gt;
Să se determine două numere naturale a şi b astfel q=a/b&lt;br /&gt;
 încât iar modulul diferenţei dintre a şi b să fie minim.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare numar3.in conține&lt;br /&gt;
&lt;br /&gt;
*pe prima linie două valori naturale ni şi nz. ni reprezintă numărul de cifre care formează partea întreagă a lui q iar nz reprezintă numărul de cifre care formează partea fracţionara a lui q.&lt;br /&gt;
*pe a doua linie, ni cifre care reprezintă partea întreagă a lui q. Între două cifre se află câte un caracter spaţiu.&lt;br /&gt;
*pe a treia linie, nz cifre care reprezintă partea zecimală a lui q. Între două cifre se află câte un caracter spaţiu.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire numar3.out va conține:&lt;br /&gt;
&lt;br /&gt;
*pe prima linie un număr natural n1 care reprezintă numărul de cifre din care este alcătuit numărul a;&lt;br /&gt;
*pe a doua linie, cifrele numărului a, fără spaţiu între ele.&lt;br /&gt;
*pe a treia linie un număr natural n2 care reprezintă numărul de cifre din care este alcătuit numărul b;&lt;br /&gt;
*pe a patra linie, cifrele numărului b, fără spaţiu între ele.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1≤ n1,n2 &amp;lt; 2000&lt;br /&gt;
*1≤ n1+n2 ≤ 2000&lt;br /&gt;
*Cifrele din care este alcătuit q sunt cele din sistemul zecimal.&lt;br /&gt;
*Pentru 20% dintre teste, n1+n2≤9; pentru alte 15% dintre teste, 10≤n1+n2≤16&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
1 3&amp;lt;br&amp;gt;&lt;br /&gt;
0&amp;lt;br&amp;gt;&lt;br /&gt;
3 7 5&lt;br /&gt;
;Iesire&lt;br /&gt;
1&amp;lt;br&amp;gt;&lt;br /&gt;
3&amp;lt;br&amp;gt;&lt;br /&gt;
1&amp;lt;br&amp;gt;&lt;br /&gt;
8&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
from fractions import Fraction&lt;br /&gt;
import itertools&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citirea datelor de intrare&lt;br /&gt;
    with open(&amp;quot;numar3.in&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
        n1, n2 = map(int, f.readline().strip().split())&lt;br /&gt;
        parte_intreaga = list(map(int, f.readline().strip().split()))&lt;br /&gt;
        parte_fractionara = list(map(int, f.readline().strip().split()))&lt;br /&gt;
    &lt;br /&gt;
    # Construirea numărului rațional q&lt;br /&gt;
    int_part = int(&amp;#039;&amp;#039;.join(map(str, parte_intreaga)))&lt;br /&gt;
    frac_part = int(&amp;#039;&amp;#039;.join(map(str, parte_fractionara)))&lt;br /&gt;
    total_len = len(parte_fractionara)&lt;br /&gt;
    q = Fraction(int_part * (10 ** total_len) + frac_part, 10 ** total_len)&lt;br /&gt;
    &lt;br /&gt;
    # Găsirea numitorilor a și b&lt;br /&gt;
    a, b = 0, 0&lt;br /&gt;
    min_diff = float(&amp;#039;inf&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    for i in range(1, 2000):&lt;br /&gt;
        candidate_b = int(q * i)&lt;br /&gt;
        candidate_a = q * i&lt;br /&gt;
        if abs(candidate_a - candidate_b) &amp;lt; min_diff:&lt;br /&gt;
            min_diff = abs(candidate_a - candidate_b)&lt;br /&gt;
            a, b = int(candidate_a), i&lt;br /&gt;
    &lt;br /&gt;
    # Afișarea rezultatului&lt;br /&gt;
    with open(&amp;quot;numar3.out&amp;quot;, &amp;quot;w&amp;quot;) as f:&lt;br /&gt;
        f.write(f&amp;quot;{len(str(a))}\n&amp;quot;)&lt;br /&gt;
        f.write(f&amp;quot;{&amp;#039; &amp;#039;.join(str(a))}\n&amp;quot;)&lt;br /&gt;
        f.write(f&amp;quot;{len(str(b))}\n&amp;quot;)&lt;br /&gt;
        f.write(f&amp;quot;{&amp;#039; &amp;#039;.join(str(b))}\n&amp;quot;)&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>Benzar Ioan</name></author>
	</entry>
</feed>