<?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=1933_-_Sume2</id>
	<title>1933 - Sume2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1933_-_Sume2"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1933_-_Sume2&amp;action=history"/>
	<updated>2026-05-01T23:24:23Z</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=1933_-_Sume2&amp;diff=8885&amp;oldid=prev</id>
		<title>Zmicala Narcis: Pagină nouă: == Cerința == Fie &#039;&#039;&#039;N&#039;&#039;&#039; un numar natural și un șir de &#039;&#039;&#039;N&#039;&#039;&#039; numere naturale &#039;&#039;&#039;V[1], V[2], …, V[N]&#039;&#039;&#039;. Pentru &#039;&#039;&#039;M&#039;&#039;&#039; întrebări de forma &#039;&#039;&#039;(i,j)&#039;&#039;&#039;, să se calculeze suma termenilor &#039;&#039;&#039;V[i], V[i + 1], …, V[j]&#039;&#039;&#039;. == Date de intrare == Pe prima linie a fișierului &#039;&#039;&#039;sume2in.txt&#039;&#039;&#039; se găsește un număr natural &#039;&#039;&#039;N&#039;&#039;&#039;. Pe urmatoarea linie sunt &#039;&#039;&#039;N&#039;&#039;&#039; numere naturale, reprezentând valorile șirului &#039;&#039;&#039;V&#039;&#039;&#039;. Pe a treia linie se găsește un număr natural &#039;&#039;&#039;M&#039;...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1933_-_Sume2&amp;diff=8885&amp;oldid=prev"/>
		<updated>2024-01-03T16:16:48Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Fie &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; un numar natural și un șir de &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; numere naturale &amp;#039;&amp;#039;&amp;#039;V[1], V[2], …, V[N]&amp;#039;&amp;#039;&amp;#039;. Pentru &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; întrebări de forma &amp;#039;&amp;#039;&amp;#039;(i,j)&amp;#039;&amp;#039;&amp;#039;, să se calculeze suma termenilor &amp;#039;&amp;#039;&amp;#039;V[i], V[i + 1], …, V[j]&amp;#039;&amp;#039;&amp;#039;. == Date de intrare == Pe prima linie a fișierului &amp;#039;&amp;#039;&amp;#039;sume2in.txt&amp;#039;&amp;#039;&amp;#039; se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;. Pe urmatoarea linie sunt &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; numere naturale, reprezentând valorile șirului &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;. Pe a treia linie se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;M&amp;#039;...&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;
Fie &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; un numar natural și un șir de &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; numere naturale &amp;#039;&amp;#039;&amp;#039;V[1], V[2], …, V[N]&amp;#039;&amp;#039;&amp;#039;. Pentru &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; întrebări de forma &amp;#039;&amp;#039;&amp;#039;(i,j)&amp;#039;&amp;#039;&amp;#039;, să se calculeze suma termenilor &amp;#039;&amp;#039;&amp;#039;V[i], V[i + 1], …, V[j]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Pe prima linie a fișierului &amp;#039;&amp;#039;&amp;#039;sume2in.txt&amp;#039;&amp;#039;&amp;#039; se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;. Pe urmatoarea linie sunt &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; numere naturale, reprezentând valorile șirului &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;. Pe a treia linie se găsește un număr natural &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; reprezentând numărul de întrebări, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039; linii câte o pereche de numere &amp;#039;&amp;#039;&amp;#039;(i,j)&amp;#039;&amp;#039;&amp;#039;, reprezentând o întrebare pentru care se cere să se calculeze suma &amp;#039;&amp;#039;&amp;#039;V[i] + V[i + 1] + ... + V[j]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Pe prima linie din fişierul &amp;#039;&amp;#039;&amp;#039;sume2out.txt&amp;#039;&amp;#039;&amp;#039; se găseşte răspunsul la prima întrebare din fişierul de intrare, pe a doua linie se găseşte răspunsul la cea de-a doua întrebare, și așa mai departe.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ N ≤ 100.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ M ≤ 500.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0 ≤ V[i] ≤ 1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Pentru 30% dintre teste &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;M ≤ 1.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; sume2in.txt&lt;br /&gt;
: 4&lt;br /&gt;
: 1 2 3 4  &lt;br /&gt;
: 2&lt;br /&gt;
: 1 3&lt;br /&gt;
: 2 4&lt;br /&gt;
; sume2.out&lt;br /&gt;
: Datele introduse corespund restricțiilor impuse.&lt;br /&gt;
: 6&lt;br /&gt;
: 9&lt;br /&gt;
== Explicație ==&lt;br /&gt;
uma elementelor de pe pozițiile de la &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039; este &amp;#039;&amp;#039;&amp;#039;6&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Suma elementelor de pe pozițiile de la &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039; la &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039; este &amp;#039;&amp;#039;&amp;#039;9&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; sume2in.txt&lt;br /&gt;
: 6&lt;br /&gt;
: 1 2 3 4 5 1000000001&lt;br /&gt;
: 2&lt;br /&gt;
: 1 3&lt;br /&gt;
: 2 4&lt;br /&gt;
; sume2.out&lt;br /&gt;
: Datele introduse nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# 1933 - Sume2&lt;br /&gt;
def validare(numarde_elemente, numarde_intrebari, sirul, intrebarii):        # functia de validare a datelor de intrare&lt;br /&gt;
    if not (1 &amp;lt;= numarde_elemente &amp;lt;= 100000) or not (1 &amp;lt;= numarde_intrebari &amp;lt;= 500000):&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    if len(sirul) != numarde_elemente or any(not (0 &amp;lt;= element &amp;lt;= 1000000000) for element in sirul):&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    if any(not (1 &amp;lt;= i &amp;lt;= j &amp;lt;= numarde_elemente) for i, j in intrebarii):&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    fisier_iesire.write(&amp;quot;Datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def calculeaza_sume(sirul, intrebarii):                     # functia de rezolvare&lt;br /&gt;
    for i, j in intrebarii:&lt;br /&gt;
        suma = sum(sirul[k - 1] for k in range(i, j + 1))&lt;br /&gt;
        fisier_iesire.write(f&amp;quot;{suma}\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    fisier_intrare = open(&amp;quot;sume2in.txt&amp;quot;, &amp;quot;r&amp;quot;)         # declararea fisierelor&lt;br /&gt;
    fisier_iesire = open(&amp;quot;sume2out.txt&amp;quot;, &amp;quot;w&amp;quot;)       # fisierul out trebuie declarat cu optiunea &amp;quot;w&amp;quot; (write)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        numar_elemente = int(fisier_intrare.readline())&lt;br /&gt;
        sir = list(map(int, fisier_intrare.readline().split()))&lt;br /&gt;
        numar_intrebari = int(fisier_intrare.readline())&lt;br /&gt;
        intrebari = [list(map(int, fisier_intrare.readline().split())) for _ in range(numar_intrebari)]&lt;br /&gt;
&lt;br /&gt;
        validare(numar_elemente, numar_intrebari, sir, intrebari)                 # apelul functiei de validare&lt;br /&gt;
        calculeaza_sume(sir, intrebari)               # apelul functiei de rezolvare&lt;br /&gt;
&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        fisier_iesire.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zmicala Narcis</name></author>
	</entry>
</feed>