<?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=3225_-_Simple</id>
	<title>3225 - Simple - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3225_-_Simple"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3225_-_Simple&amp;action=history"/>
	<updated>2026-05-01T03:40:08Z</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=3225_-_Simple&amp;diff=9980&amp;oldid=prev</id>
		<title>AjM: Pagină nouă: == Enunt == Se dă un șir de N numere și Q operații de tipul:  * 0 a b val : se va aduna valoarea val la toate numerele din intervalul [a, b]. * 1 a b : se va afișa elementul minim par și elementul maxim impar din intervalul [a, b]; în cazul în care unul dintre aceste numere nu există, se va afișa -1 în locul său. == Cerinţa == Răspundeți corect la toate operațiile de tip 1. == Date de intrare == Programul citește de la tastatură numărul N. Pe a doua linie s...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3225_-_Simple&amp;diff=9980&amp;oldid=prev"/>
		<updated>2024-06-03T16:02:55Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Se dă un șir de N numere și Q operații de tipul:  * 0 a b val : se va aduna valoarea val la toate numerele din intervalul [a, b]. * 1 a b : se va afișa elementul minim par și elementul maxim impar din intervalul [a, b]; în cazul în care unul dintre aceste numere nu există, se va afișa -1 în locul său. == Cerinţa == Răspundeți corect la toate operațiile de tip 1. == Date de intrare == Programul citește de la tastatură numărul N. Pe a doua linie s...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Se dă un șir de N numere și Q operații de tipul:&lt;br /&gt;
&lt;br /&gt;
* 0 a b val : se va aduna valoarea val la toate numerele din intervalul [a, b].&lt;br /&gt;
* 1 a b : se va afișa elementul minim par și elementul maxim impar din intervalul [a, b]; în cazul în care unul dintre aceste numere nu există, se va afișa -1 în locul său.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Răspundeți corect la toate operațiile de tip 1.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numărul N. Pe a doua linie se vor afla N numere reprezentând elementele din sir. Pe linia a treia se va afla numărul Q, iar pe următoarele Q linii se vor afla Q operații sub forma descrisa în enunț.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Se vor afișa pe ecran răspunsurile la operațiile de tip 1, câte unul pe linie.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* N, Q &amp;lt;= 200.000&lt;br /&gt;
* Numerele din sir sunt cuprinse intre 1 și 2.000.000.000.&lt;br /&gt;
* Valorile val din operațiile de tip 0 sunt cuprinse intre 1 și 2.000.000.000.&lt;br /&gt;
* ATENȚIE! În cazul în care unul din cele două răspunsuri la o operație de tip 1 nu poate fi calculat, se va afișa -1&lt;br /&gt;
== Exemplu ==&lt;br /&gt;
; Intrare&lt;br /&gt;
 7&lt;br /&gt;
 5 6 3 1 9 8 5&lt;br /&gt;
 10&lt;br /&gt;
 1 2 5&lt;br /&gt;
 0 2 3 2&lt;br /&gt;
 1 2 4&lt;br /&gt;
 0 2 7 3&lt;br /&gt;
 1 2 4&lt;br /&gt;
 1 4 7&lt;br /&gt;
 0 5 7 1&lt;br /&gt;
 1 1 6&lt;br /&gt;
 1 1 2&lt;br /&gt;
 1 3 4&lt;br /&gt;
; Ieșire&lt;br /&gt;
 6 9&lt;br /&gt;
 8 5&lt;br /&gt;
 4 11&lt;br /&gt;
 4 11&lt;br /&gt;
 4 13&lt;br /&gt;
 -1 11&lt;br /&gt;
 4 -1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Șirul inițial este: 5 6 3 1 9 8 5.&lt;br /&gt;
Operația 1 2 5: Se vor afișa cele doua valori cerute pe intervalul [2; 5].&lt;br /&gt;
Operația 0 2 3 2: Șirul nou format va fi 5 8 5 1 9 8 5.&lt;br /&gt;
Operația 1 2 4 : Se vor afișa cele doua valori cerute pe intervalul [2; 4].&lt;br /&gt;
Operația 0 2 7 3 : Șirul nou format va fi 5 11 8 4 12 11 8.&lt;br /&gt;
Operația 1 2 4 : Se vor afișa cele doua valori cerute pe intervalul [2; 4].&lt;br /&gt;
Operația 1 4 7 : Se vor afișa cele doua valori cerute pe intervalul [4; 7].&lt;br /&gt;
Operația 0 5 7 1 : Șirul nou format va fi 5 11 8 4 13 12 9.&lt;br /&gt;
Operația 1 1 6 : Se vor afișa cele doua valori cerute pe intervalul [1; 6].&lt;br /&gt;
Operația 1 1 2 : Se vor afișa cele doua valori cerute pe intervalul [1; 2].&lt;br /&gt;
Operația 1 3 4 : Se vor afișa cele doua valori cerute pe intervalul [3; 4].&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def apply_operation_0(arr, a, b, val):&lt;br /&gt;
    for i in range(a - 1, b):&lt;br /&gt;
        arr[i] += val&lt;br /&gt;
&lt;br /&gt;
def find_min_par_and_max_odd(arr, a, b):&lt;br /&gt;
    min_par = float(&amp;#039;inf&amp;#039;)&lt;br /&gt;
    max_odd = float(&amp;#039;-inf&amp;#039;)&lt;br /&gt;
    for i in range(a - 1, b):&lt;br /&gt;
        if arr[i] % 2 == 0:&lt;br /&gt;
            min_par = min(min_par, arr[i])&lt;br /&gt;
        else:&lt;br /&gt;
            max_odd = max(max_odd, arr[i])&lt;br /&gt;
    if min_par == float(&amp;#039;inf&amp;#039;):&lt;br /&gt;
        min_par = -1&lt;br /&gt;
    if max_odd == float(&amp;#039;-inf&amp;#039;):&lt;br /&gt;
        max_odd = -1&lt;br /&gt;
    return min_par, max_odd&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    N = int(input())&lt;br /&gt;
    arr = list(map(int, input().split()))&lt;br /&gt;
    Q = int(input())&lt;br /&gt;
&lt;br /&gt;
    for _ in range(Q):&lt;br /&gt;
        query = input().split()&lt;br /&gt;
        op = int(query[0])&lt;br /&gt;
        a = int(query[1])&lt;br /&gt;
        b = int(query[2])&lt;br /&gt;
&lt;br /&gt;
        if op == 0:&lt;br /&gt;
            val = int(query[3])&lt;br /&gt;
            apply_operation_0(arr, a, b, val)&lt;br /&gt;
        elif op == 1:&lt;br /&gt;
            min_par, max_odd = find_min_par_and_max_odd(arr, a, b)&lt;br /&gt;
            print(min_par, max_odd)&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>AjM</name></author>
	</entry>
</feed>