<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benea+Coralia</id>
	<title>Bitnami MediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benea+Coralia"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/wiki/Special:Contributions/Benea_Coralia"/>
	<updated>2026-05-01T02:46:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1388_-_Colectie&amp;diff=9101</id>
		<title>1388 - Colectie</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1388_-_Colectie&amp;diff=9101"/>
		<updated>2024-01-05T19:00:08Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: Pagină nouă: == Cerinţa == Dudu este un colecționar înrăit de vederi. În decursul anilor, a reușit să colecționeze un număr &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; de vederi. Pentru a-i fi mai ușor să le identifice, el le-a atribuit fiecărei vederi câte un număr (de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;).  Într-o zi, Dudu a constatat faptul că prin colecția sa se află vederi care se repetă (sunt marcate cu același număr). Fiind, un colecționar care se respectă, el dorește să păstreze doar acele vederi care sun...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Dudu este un colecționar înrăit de vederi. În decursul anilor, a reușit să colecționeze un număr &#039;&#039;&#039;n&#039;&#039;&#039; de vederi. Pentru a-i fi mai ușor să le identifice, el le-a atribuit fiecărei vederi câte un număr (de la &#039;&#039;&#039;1&#039;&#039;&#039; la &#039;&#039;&#039;n&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
Într-o zi, Dudu a constatat faptul că prin colecția sa se află vederi care se repetă (sunt marcate cu același număr). Fiind, un colecționar care se respectă, el dorește să păstreze doar acele vederi care sunt unice în colecția sa (prin „&#039;&#039;&#039;unic&#039;&#039;&#039;” înțelegem o vedere al cărei număr atribuit este unic).„Ajută-mă, te rog!”, spune Dudu. El vă cere să aflați care este numărul de vederi unice din colecția sa.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;colectiein.txt&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;colectieout.txt&#039;&#039;&#039; va conține pe prima linie numărul de vederi unice care se află în colecția sa.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 1 ≤ n ≤ 9.000.000&lt;br /&gt;
* numerele de pe a doua linie a fișierului de intrare vor fi mai mici sau egale cu n&lt;br /&gt;
* Dudu vă mulțumește din suflet pentru ajutorul oferit!&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; colectiein.txt&lt;br /&gt;
 10&lt;br /&gt;
 4 3 8 9 3 8 4 2 1 1 &lt;br /&gt;
; colectieout.txt&lt;br /&gt;
 2&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; colectiein.txt&lt;br /&gt;
 0&lt;br /&gt;
 1 2 3 &lt;br /&gt;
; colectieout.txt&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 unique_views(n, views):&lt;br /&gt;
    if 1 &amp;lt;= n &amp;lt;= 9000000 and all(1 &amp;lt;= view &amp;lt;= n for view in views):&lt;br /&gt;
        view_counts = [0] * (n + 1)&lt;br /&gt;
        for view in views:&lt;br /&gt;
            view_counts[view] += 1&lt;br /&gt;
        return view_counts.count(1)&lt;br /&gt;
    else:&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
with open(&#039;colectiein.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
    n = int(fin.readline())&lt;br /&gt;
    views = list(map(int, fin.readline().split()))&lt;br /&gt;
&lt;br /&gt;
result = unique_views(n, views)&lt;br /&gt;
&lt;br /&gt;
if result is not None:&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
    with open(&#039;colectieout.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
        fout.write(str(result))&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
În colecția lui Dudu se află vederi marcate cu numerele : &#039;&#039;&#039;1, 2, 3, 4, 8, 9&#039;&#039;&#039;. Dintre aceste vederi, doar cele marcate cu numerele &#039;&#039;&#039;2, 9&#039;&#039;&#039; sunt unice.&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2773_-_fibona&amp;diff=9100</id>
		<title>2773 - fibona</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2773_-_fibona&amp;diff=9100"/>
		<updated>2024-01-05T18:35:18Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: Pagină nouă: == Cerinţa == Dorel tocmai a aflat despre existenţa şirului lui Fibonacci: F0=0, F1=1, F2=1, F3=2, F4=3, F5=5,… . Pentru numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039; date, Dorel vă roagă să calculaţi suma Fp + Fk+p + F2•k+p + … + Fn•k+p. == Date de intrare == Programul citește de la tastatură numerele &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039; şi &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;. == Date de ieșire == Programul va afișa pe ecran suma cerută, modulo &amp;#039;&amp;#039;&amp;#039;1.000.000.007&amp;#039;&amp;#039;&amp;#039;. == Restricţii şi precizări == * &amp;#039;&amp;#039;&amp;#039;1 &amp;amp;le...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Dorel tocmai a aflat despre existenţa şirului lui Fibonacci: F0=0, F1=1, F2=1, F3=2, F4=3, F5=5,… . Pentru numerele &#039;&#039;&#039;n&#039;&#039;&#039;, &#039;&#039;&#039;k&#039;&#039;&#039; şi &#039;&#039;&#039;p&#039;&#039;&#039; date, Dorel vă roagă să calculaţi suma Fp + Fk+p + F2•k+p + … + Fn•k+p.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele &#039;&#039;&#039;n&#039;&#039;&#039; , &#039;&#039;&#039;k&#039;&#039;&#039; şi &#039;&#039;&#039;p&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran suma cerută, modulo &#039;&#039;&#039;1.000.000.007&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les; 1016&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;0 &amp;amp;les; p &amp;lt; k &amp;amp;les; 100&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; in&lt;br /&gt;
 3 3 1 &lt;br /&gt;
; out&lt;br /&gt;
 72&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; in&lt;br /&gt;
 0 1 1 &lt;br /&gt;
; out&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 fibonacci_sum(n_val, k_val, p_val):&lt;br /&gt;
    mod = 1000000007&lt;br /&gt;
    fib = [0, 1]&lt;br /&gt;
    for i in range(2, n_val*k_val+p_val+1):&lt;br /&gt;
        fib.append((fib[i-1] + fib[i-2]) % mod)&lt;br /&gt;
    return sum(fib[i*k_val+p_val] for i in range(n_val+1)) % mod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def solve_problem(n_val, k_val, p_val):&lt;br /&gt;
    if 1 &amp;lt;= n_val &amp;lt;= 10**16 and 0 &amp;lt;= p_val &amp;lt; k_val &amp;lt;= 100:&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return fibonacci_sum(n_val, k_val, p_val)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        return None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
n = int(input(&amp;quot;Introduceți n: &amp;quot;))&lt;br /&gt;
k = int(input(&amp;quot;Introduceți k: &amp;quot;))&lt;br /&gt;
p = int(input(&amp;quot;Introduceți p: &amp;quot;))&lt;br /&gt;
&lt;br /&gt;
print(solve_problem(n, k, p))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Suma cerută este F1 + F4 + F7 + F10 = 1 + 3 + 13 + 55 = 72.&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9038</id>
		<title>2013 - Intersectie Segmente</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9038"/>
		<updated>2024-01-04T22:46:04Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Numerele naturale nenule se scriu pe linii într-un triunghi de forma de mai jos:&lt;br /&gt;
 1&lt;br /&gt;
 2 3&lt;br /&gt;
 4 5 6 &lt;br /&gt;
 7 8 9 10&lt;br /&gt;
 ...&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau două numere natural &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;. Determinați:&lt;br /&gt;
&lt;br /&gt;
1. Suma numerelor de pe linia cu numărul &#039;&#039;&#039;n&#039;&#039;&#039; din triunghiul construit ca mai sus.&lt;br /&gt;
&lt;br /&gt;
2. Linia pe care se află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, precum și pe ce poziție se află el pe această linie.&lt;br /&gt;
&lt;br /&gt;
Dându-se Q operații, să se raspundă în ordine la cele de tip 2 și 3.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare numere18in.txt conține pe prima linie un număr natural &#039;&#039;&#039;C&#039;&#039;&#039; reprezentând cerința din problemă care trebuie rezolvată (1 sau 2).&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;1&#039;&#039;&#039;, a doua linie din fișier conține un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;, reprezentând numărul liniei pe care trebuie să se calculeze suma.&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;2&#039;&#039;&#039;, a doua linie din fișier conține numărul natural &#039;&#039;&#039;m&#039;&#039;&#039;, reprezentând numărul care trebuie căutat în triunghi.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039; va conține o singură linie. Dacă &#039;&#039;&#039;C=1&#039;&#039;&#039;, va fi scrisă suma cerută la punctul 1. Dacă &#039;&#039;&#039;C=2&#039;&#039;&#039;, vor fi scrise nouă numere: linia pe care a află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, respectiv poziția acestuia pe această linie, separate printr-un spațiu.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
*&#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les; 1000&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;1 &amp;amp;les; m &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
*Pentru rezolvarea corectă a cerinţei 1 se acordă 45 de puncte; pentru rezolvarea corectă a cerinței 2 se acordă 55 de puncte.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
 1&lt;br /&gt;
 4&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
 34&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
În acest caz se rezolvă doar cerința &#039;&#039;&#039;1&#039;&#039;&#039;. Numerele de pe linia a 4-a sunt: &#039;&#039;&#039;7, 8, 9, 10,&#039;&#039;&#039; iar suma lor este &#039;&#039;&#039;34&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
 2&lt;br /&gt;
 1500000000&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&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 suma_linie(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    start = n * (n - 1) // 2 + 1&lt;br /&gt;
    end = start + n&lt;br /&gt;
    return sum(range(start, end))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def linie_numar(m):&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 1000000000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    linie = int(((8 * m + 1) ** 0.5 - 1) / 2)&lt;br /&gt;
    start = linie * (linie - 1) // 2 + 1&lt;br /&gt;
    pozitie = m - start + 1&lt;br /&gt;
    return linie, pozitie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18in.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
    C = int(fin.readline().strip())&lt;br /&gt;
    num = int(fin.readline().strip())&lt;br /&gt;
    if C == 1:&lt;br /&gt;
        result = suma_linie(num)&lt;br /&gt;
    else:&lt;br /&gt;
        result = linie_numar(num)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18out.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
    if isinstance(result, tuple):&lt;br /&gt;
        fout.write(&#039; &#039;.join(map(str, result)))&lt;br /&gt;
    else:&lt;br /&gt;
        fout.write(str(result))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3201_-_IJK&amp;diff=9037</id>
		<title>3201 - IJK</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3201_-_IJK&amp;diff=9037"/>
		<updated>2024-01-04T22:43:13Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir a cu n numere naturale. Aflaţi numărul tripletelor &#039;&#039;&#039;(i,j,k)&#039;&#039;&#039;, cu &#039;&#039;&#039;1 ≤ i &amp;lt; j &amp;lt; k ≤ n,&#039;&#039;&#039; pentru care avem &#039;&#039;&#039;a[i] &amp;gt; a[j] &amp;lt; a[k].&#039;&#039;&#039;&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;ijk.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;ijk.out&#039;&#039;&#039; va conține pe prima linie numărul tripletelor &#039;&#039;&#039;(i,j,k)&#039;&#039;&#039;, cu &#039;&#039;&#039;1 &amp;amp;les; i &amp;lt; j &amp;lt; k &amp;amp;les; n&#039;&#039;&#039;, pentru care avem &#039;&#039;&#039;a[i] &amp;gt; a[j] &amp;lt; a[k]&#039;&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
*&#039;&#039;&#039;3 &amp;amp;les; n &amp;amp;les; 70.000&#039;&#039;&#039;&lt;br /&gt;
*numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; ijkin.txt&lt;br /&gt;
 5&lt;br /&gt;
 3 11 2 7 14&lt;br /&gt;
; ijkout.txt&lt;br /&gt;
 5&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Tripletele cu proprietatea cerută sunt: &#039;&#039;&#039;(1,3,4)&#039;&#039;&#039;, &#039;&#039;&#039;(1,3,5)&#039;&#039;&#039;, &#039;&#039;&#039;(2,3,4)&#039;&#039;&#039;, &#039;&#039;&#039;(2,3,5)&#039;&#039;&#039;, &#039;&#039;&#039;(2,4,5)&#039;&#039;&#039;.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; ijkin.txt&lt;br /&gt;
 1&lt;br /&gt;
 1000000000&lt;br /&gt;
; ijkout.txt&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 verifica_restrictii(n, a):&lt;br /&gt;
    if n &amp;lt; 3 or n &amp;gt; 70000:&lt;br /&gt;
        return False&lt;br /&gt;
    for numar in a:&lt;br /&gt;
        if numar &amp;lt; 0 or numar &amp;gt;= 2000000000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculeaza_triplete(n, a):&lt;br /&gt;
    numar_triplete = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i + 1, n):&lt;br /&gt;
            for k in range(j + 1, n):&lt;br /&gt;
                if a[i] &amp;gt; a[j] and a[j] &amp;lt; a[k]:&lt;br /&gt;
                    numar_triplete += 1&lt;br /&gt;
    return numar_triplete&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema():&lt;br /&gt;
    with open(&#039;ijkin.txt&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline())&lt;br /&gt;
        a = list(map(int, fisier_intrare.readline().split()))&lt;br /&gt;
&lt;br /&gt;
    if verifica_restrictii(n, a):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        numar_triplete = calculeaza_triplete(n, a)&lt;br /&gt;
&lt;br /&gt;
        with open(&#039;ijkout.txt&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
            fisier_iesire.write(str(numar_triplete))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rezolva_problema()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2090_-_Actualizare_Element,_Minim_Interval&amp;diff=9035</id>
		<title>2090 - Actualizare Element, Minim Interval</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2090_-_Actualizare_Element,_Minim_Interval&amp;diff=9035"/>
		<updated>2024-01-04T22:40:15Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: Pagină nouă: Se dă un șir de numere asupra căruia se pot face două tipuri de operații: actualizare a unui element (schimbarea valorii sale) și interogarea unui interval de indici (determinarea celei mai mici valori aflate între cei doi indici, inclusiv). == Cerinţa == Afișați răspunsul la fiecare interogare. == Date de intrare == Prima linie a fisierului &amp;#039;&amp;#039;&amp;#039;aemi.in&amp;#039;&amp;#039;&amp;#039; conține un număr &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;, ce reprezintă lungimea șirului dat. Linia a doua, conține, separate prin câte u...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Se dă un șir de numere asupra căruia se pot face două tipuri de operații: actualizare a unui element (schimbarea valorii sale) și interogarea unui interval de indici (determinarea celei mai mici valori aflate între cei doi indici, inclusiv).&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Afișați răspunsul la fiecare interogare.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Prima linie a fisierului &#039;&#039;&#039;aemi.in&#039;&#039;&#039; conține un număr &#039;&#039;&#039;N&#039;&#039;&#039;, ce reprezintă lungimea șirului dat. Linia a doua, conține, separate prin câte un spațiu elementele șirului dat. Pe linia a treia e află un număr &#039;&#039;&#039;M&#039;&#039;&#039; ce reprezintă numărul de operații ce se efectuează asupra șirului dat. Pe fiecare din următoarele &#039;&#039;&#039;M&#039;&#039;&#039; linii se găsesc câte &#039;&#039;&#039;3&#039;&#039;&#039; numere naturale separate prin câte un spațiu: &#039;&#039;&#039;T A B&#039;&#039;&#039;. Dacă &#039;&#039;&#039;T&#039;&#039;&#039; = &#039;&#039;&#039;1&#039;&#039;&#039; operația este de interogare iar &#039;&#039;&#039;A&#039;&#039;&#039; și &#039;&#039;&#039;B&#039;&#039;&#039; sunt capetele intervalului. Dacă &#039;&#039;&#039;T&#039;&#039;&#039; = &#039;&#039;&#039;2&#039;&#039;&#039; operația este de actualizare cu semnificația: elementul de pe poziția &#039;&#039;&#039;A&#039;&#039;&#039; primește valoarea &#039;&#039;&#039;B&#039;&#039;&#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul &#039;&#039;&#039;aemi.out&#039;&#039;&#039; conține pe câte o linie răspunsul la căte o operațe de tip &#039;&#039;&#039;1&#039;&#039;&#039;, în ordinea în care acestea apar în datele de intrare.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; N &amp;amp;les; 100.000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; M &amp;amp;les; 100.000&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 &amp;amp;les; A &amp;amp;les; B &amp;amp;les; N&#039;&#039;&#039;&lt;br /&gt;
* elementele șirului dat sunt indexate de la &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* elementele șirului dat sunt de tip int, pozitive&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; aemiin.txt&lt;br /&gt;
 5&lt;br /&gt;
 1 6 4 3 9&lt;br /&gt;
 3&lt;br /&gt;
 1 2 4&lt;br /&gt;
 2 2 2&lt;br /&gt;
 1 2 4 &lt;br /&gt;
; aemiin.txt&lt;br /&gt;
 3&lt;br /&gt;
 2&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; aemiin.txt&lt;br /&gt;
 5&lt;br /&gt;
 1 6 4 3 9&lt;br /&gt;
 0&lt;br /&gt;
 1 2 4&lt;br /&gt;
 2 2 2&lt;br /&gt;
 1 2 4&lt;br /&gt;
; aemiin.txt&lt;br /&gt;
 Datele de intrare nu corespund restrictiilor impuse&lt;br /&gt;
neaparat tre ssa pui si un ex 2 care sa arate cand codul nu funtioneaza&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 verifica_restrictii(n, m, a):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 100000 or m &amp;lt; 1 or m &amp;gt; 100000:&lt;br /&gt;
        return False&lt;br /&gt;
    for numar in a:&lt;br /&gt;
        if numar &amp;lt; 1:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def actualizeaza(a, i, val):&lt;br /&gt;
    a[i - 1] = val&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def interogheaza(a, i, j):&lt;br /&gt;
    return min(a[i - 1:j])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema():&lt;br /&gt;
    with open(&#039;aemiin.txt&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline())&lt;br /&gt;
        a = list(map(int, fisier_intrare.readline().split()))&lt;br /&gt;
        m = int(fisier_intrare.readline())&lt;br /&gt;
        operatii = [list(map(int, fisier_intrare.readline().split())) for _ in range(m)]&lt;br /&gt;
&lt;br /&gt;
    if verifica_restrictii(n, m, a):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        with open(&#039;aemiout.txt&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
            for operatie in operatii:&lt;br /&gt;
                if operatie[0] == 1:&lt;br /&gt;
                    fisier_iesire.write(str(interogheaza(a, operatie[1], operatie[2])) + &#039;\n&#039;)&lt;br /&gt;
                else:&lt;br /&gt;
                    actualizeaza(a, operatie[1], operatie[2])&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rezolva_problema()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=3201_-_IJK&amp;diff=9027</id>
		<title>3201 - IJK</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3201_-_IJK&amp;diff=9027"/>
		<updated>2024-01-04T21:55:39Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: Pagină nouă: == Cerinţa == Se dă un şir a cu n numere naturale. Aflaţi numărul tripletelor &amp;#039;&amp;#039;&amp;#039;(i,j,k)&amp;#039;&amp;#039;&amp;#039;, cu &amp;#039;&amp;#039;&amp;#039;1 ≤ i &amp;lt; j &amp;lt; k ≤ n,&amp;#039;&amp;#039;&amp;#039; pentru care avem &amp;#039;&amp;#039;&amp;#039;a[i] &amp;gt; a[j] &amp;lt; a[k].&amp;#039;&amp;#039;&amp;#039; == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;ijk.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;, iar pe a doua linie &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere naturale separate prin spații. == Date de ieșire == Fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;ijk.out&amp;#039;&amp;#039;&amp;#039; va conține pe prima linie numărul tripletelor &amp;#039;&amp;#039;&amp;#039;(i,j,k)&amp;#039;&amp;#039;&amp;#039;, cu &amp;#039;&amp;#039;&amp;#039;1 &amp;amp;les; i &amp;lt; j &amp;lt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dă un şir a cu n numere naturale. Aflaţi numărul tripletelor &#039;&#039;&#039;(i,j,k)&#039;&#039;&#039;, cu &#039;&#039;&#039;1 ≤ i &amp;lt; j &amp;lt; k ≤ n,&#039;&#039;&#039; pentru care avem &#039;&#039;&#039;a[i] &amp;gt; a[j] &amp;lt; a[k].&#039;&#039;&#039;&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &#039;&#039;&#039;ijk.in&#039;&#039;&#039; conține pe prima linie numărul &#039;&#039;&#039;n&#039;&#039;&#039;, iar pe a doua linie &#039;&#039;&#039;n&#039;&#039;&#039; numere naturale separate prin spații.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;ijk.out&#039;&#039;&#039; va conține pe prima linie numărul tripletelor &#039;&#039;&#039;(i,j,k)&#039;&#039;&#039;, cu &#039;&#039;&#039;1 &amp;amp;les; i &amp;lt; j &amp;lt; k &amp;amp;les; n&#039;&#039;&#039;, pentru care avem &#039;&#039;&#039;a[i] &amp;gt; a[j] &amp;lt; a[k]&#039;&#039;&#039;&#039;.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
&#039;&#039;&#039;3 &amp;amp;les; n &amp;amp;les; 70.000&#039;&#039;&#039;&lt;br /&gt;
numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât &#039;&#039;&#039;2.000.000.000&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; ijkin.txt&lt;br /&gt;
 5&lt;br /&gt;
 3 11 2 7 14&lt;br /&gt;
; ijkout.txt&lt;br /&gt;
 5&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Tripletele cu proprietatea cerută sunt: &#039;&#039;&#039;(1,3,4)&#039;&#039;&#039;, &#039;&#039;&#039;(1,3,5)&#039;&#039;&#039;, &#039;&#039;&#039;(2,3,4)&#039;&#039;&#039;, &#039;&#039;&#039;(2,3,5)&#039;&#039;&#039;, &#039;&#039;&#039;(2,4,5)&#039;&#039;&#039;.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; ijkin.txt&lt;br /&gt;
 1&lt;br /&gt;
 1000000000&lt;br /&gt;
; ijkout.txt&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 verifica_restrictii(n, a):&lt;br /&gt;
    if n &amp;lt; 3 or n &amp;gt; 70000:&lt;br /&gt;
        return False&lt;br /&gt;
    for numar in a:&lt;br /&gt;
        if numar &amp;lt; 0 or numar &amp;gt;= 2000000000:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def calculeaza_triplete(n, a):&lt;br /&gt;
    numar_triplete = 0&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        for j in range(i + 1, n):&lt;br /&gt;
            for k in range(j + 1, n):&lt;br /&gt;
                if a[i] &amp;gt; a[j] and a[j] &amp;lt; a[k]:&lt;br /&gt;
                    numar_triplete += 1&lt;br /&gt;
    return numar_triplete&lt;br /&gt;
&lt;br /&gt;
def rezolva_problema():&lt;br /&gt;
    with open(&#039;ijkin.txt&#039;, &#039;r&#039;) as fisier_intrare:&lt;br /&gt;
        n = int(fisier_intrare.readline())&lt;br /&gt;
        a = list(map(int, fisier_intrare.readline().split()))&lt;br /&gt;
&lt;br /&gt;
    if verifica_restrictii(n, a):&lt;br /&gt;
        print(&amp;quot;Datele de intrare corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
        numar_triplete = calculeaza_triplete(n, a)&lt;br /&gt;
&lt;br /&gt;
        with open(&#039;ijkout.txt&#039;, &#039;w&#039;) as fisier_iesire:&lt;br /&gt;
            fisier_iesire.write(str(numar_triplete))&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
rezolva_problema()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9024</id>
		<title>2013 - Intersectie Segmente</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9024"/>
		<updated>2024-01-04T21:07:31Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau două numere natural &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;. Determinați:&lt;br /&gt;
&lt;br /&gt;
1. Suma numerelor de pe linia cu numărul &#039;&#039;&#039;n&#039;&#039;&#039; din triunghiul construit ca mai sus.&lt;br /&gt;
&lt;br /&gt;
2. Linia pe care se află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, precum și pe ce poziție se află el pe această linie.&lt;br /&gt;
&lt;br /&gt;
Dându-se Q operații, să se raspundă în ordine la cele de tip 2 și 3.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare numere18in.txt conține pe prima linie un număr natural &#039;&#039;&#039;C&#039;&#039;&#039; reprezentând cerința din problemă care trebuie rezolvată (1 sau 2).&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;1&#039;&#039;&#039;, a doua linie din fișier conține un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;, reprezentând numărul liniei pe care trebuie să se calculeze suma.&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;2&#039;&#039;&#039;, a doua linie din fișier conține numărul natural &#039;&#039;&#039;m&#039;&#039;&#039;, reprezentând numărul care trebuie căutat în triunghi.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039; va conține o singură linie. Dacă &#039;&#039;&#039;C=1&#039;&#039;&#039;, va fi scrisă suma cerută la punctul 1. Dacă &#039;&#039;&#039;C=2&#039;&#039;&#039;, vor fi scrise nouă numere: linia pe care a află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, respectiv poziția acestuia pe această linie, separate printr-un spațiu.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
&#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les; 1000&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;1 &amp;amp;les; m &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei 1 se acordă 45 de puncte; pentru rezolvarea corectă a cerinței 2 se acordă 55 de puncte.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
 1&lt;br /&gt;
 4&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
 34&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
În acest caz se rezolvă doar cerința &#039;&#039;&#039;1&#039;&#039;&#039;. Numerele de pe linia a 4-a sunt: &#039;&#039;&#039;7, 8, 9, 10,&#039;&#039;&#039; iar suma lor este &#039;&#039;&#039;34&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
 2&lt;br /&gt;
 1500000000&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
Datele de intrare nu corespund restrictiilor impuse&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 suma_linie(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    start = n * (n - 1) // 2 + 1&lt;br /&gt;
    end = start + n&lt;br /&gt;
    return sum(range(start, end))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def linie_numar(m):&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 1000000000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    linie = int(((8 * m + 1) ** 0.5 - 1) / 2)&lt;br /&gt;
    start = linie * (linie - 1) // 2 + 1&lt;br /&gt;
    pozitie = m - start + 1&lt;br /&gt;
    return linie, pozitie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18in.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
    C = int(fin.readline().strip())&lt;br /&gt;
    num = int(fin.readline().strip())&lt;br /&gt;
    if C == 1:&lt;br /&gt;
        result = suma_linie(num)&lt;br /&gt;
    else:&lt;br /&gt;
        result = linie_numar(num)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18out.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
    if isinstance(result, tuple):&lt;br /&gt;
        fout.write(&#039; &#039;.join(map(str, result)))&lt;br /&gt;
    else:&lt;br /&gt;
        fout.write(str(result))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9021</id>
		<title>2013 - Intersectie Segmente</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2013_-_Intersectie_Segmente&amp;diff=9021"/>
		<updated>2024-01-04T20:51:29Z</updated>

		<summary type="html">&lt;p&gt;Benea Coralia: Pagină nouă: == Cerinţa == Se dau două numere natural &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;. Determinați:  1. Suma numerelor de pe linia cu numărul &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; din triunghiul construit ca mai sus.  2. Linia pe care se află numărul &amp;#039;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;#039;, precum și pe ce poziție se află el pe această linie.  Dându-se Q operații, să se raspundă în ordine la cele de tip 2 și 3. == Date de intrare == Fișierul de intrare numere18in.txt conține pe prima linie un număr natural &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039; reprezentând cerința din p...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Cerinţa ==&lt;br /&gt;
Se dau două numere natural &#039;&#039;&#039;n&#039;&#039;&#039; și &#039;&#039;&#039;m&#039;&#039;&#039;. Determinați:&lt;br /&gt;
&lt;br /&gt;
1. Suma numerelor de pe linia cu numărul &#039;&#039;&#039;n&#039;&#039;&#039; din triunghiul construit ca mai sus.&lt;br /&gt;
&lt;br /&gt;
2. Linia pe care se află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, precum și pe ce poziție se află el pe această linie.&lt;br /&gt;
&lt;br /&gt;
Dându-se Q operații, să se raspundă în ordine la cele de tip 2 și 3.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare numere18in.txt conține pe prima linie un număr natural &#039;&#039;&#039;C&#039;&#039;&#039; reprezentând cerința din problemă care trebuie rezolvată (1 sau 2).&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;1&#039;&#039;&#039;, a doua linie din fișier conține un număr natural &#039;&#039;&#039;n&#039;&#039;&#039;, reprezentând numărul liniei pe care trebuie să se calculeze suma.&lt;br /&gt;
&lt;br /&gt;
Dacă &#039;&#039;&#039;C&#039;&#039;&#039; este egal cu &#039;&#039;&#039;2&#039;&#039;&#039;, a doua linie din fișier conține numărul natural &#039;&#039;&#039;m&#039;&#039;&#039;, reprezentând numărul care trebuie căutat în triunghi.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fișierul de ieșire &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039; va conține o singură linie. Dacă &#039;&#039;&#039;C=1&#039;&#039;&#039;, va fi scrisă suma cerută la punctul 1. Dacă &#039;&#039;&#039;C=2&#039;&#039;&#039;, vor fi scrise nouă numere: linia pe care a află numărul &#039;&#039;&#039;m&#039;&#039;&#039;, respectiv poziția acestuia pe această linie, separate printr-un spațiu.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
&#039;&#039;&#039;1 &amp;amp;les; n &amp;amp;les; 1000&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;1 &amp;amp;les; m &amp;amp;les; 1.000.000.000&#039;&#039;&#039;&lt;br /&gt;
Pentru rezolvarea corectă a cerinţei 1 se acordă 45 de puncte; pentru rezolvarea corectă a cerinței 2 se acordă 55 de puncte.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
1&lt;br /&gt;
4&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
34&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
În acest caz se rezolvă doar cerința &#039;&#039;&#039;1&#039;&#039;&#039;. Numerele de pe linia a 4-a sunt: &#039;&#039;&#039;7, 8, 9, 10,&#039;&#039;&#039; iar suma lor este &#039;&#039;&#039;34&#039;&#039;&#039;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; &#039;&#039;&#039;numere18in.txt&#039;&#039;&#039;&lt;br /&gt;
2&lt;br /&gt;
1500000000&lt;br /&gt;
; &#039;&#039;&#039;numere18out.txt&#039;&#039;&#039;&lt;br /&gt;
Datele de intrare nu corespund restrictiilor impuse&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 suma_linie(n):&lt;br /&gt;
    if n &amp;lt; 1 or n &amp;gt; 1000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    start = n * (n - 1) // 2 + 1&lt;br /&gt;
    end = start + n&lt;br /&gt;
    return sum(range(start, end))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def linie_numar(m):&lt;br /&gt;
    if m &amp;lt; 1 or m &amp;gt; 1000000000:&lt;br /&gt;
        return &amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;&lt;br /&gt;
    linie = int(((8 * m + 1) ** 0.5 - 1) / 2)&lt;br /&gt;
    start = linie * (linie - 1) // 2 + 1&lt;br /&gt;
    pozitie = m - start + 1&lt;br /&gt;
    return linie, pozitie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18in.txt&#039;, &#039;r&#039;) as fin:&lt;br /&gt;
    C = int(fin.readline().strip())&lt;br /&gt;
    num = int(fin.readline().strip())&lt;br /&gt;
    if C == 1:&lt;br /&gt;
        result = suma_linie(num)&lt;br /&gt;
    else:&lt;br /&gt;
        result = linie_numar(num)&lt;br /&gt;
&lt;br /&gt;
with open(&#039;numere18out.txt&#039;, &#039;w&#039;) as fout:&lt;br /&gt;
    if isinstance(result, tuple):&lt;br /&gt;
        fout.write(&#039; &#039;.join(map(str, result)))&lt;br /&gt;
    else:&lt;br /&gt;
        fout.write(str(result))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benea Coralia</name></author>
	</entry>
</feed>