<?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=4263_-_ifelse</id>
	<title>4263 - ifelse - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4263_-_ifelse"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4263_-_ifelse&amp;action=history"/>
	<updated>2026-05-01T05:38:26Z</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=4263_-_ifelse&amp;diff=9099&amp;oldid=prev</id>
		<title>Andrada378 at 14:48, 5 January 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4263_-_ifelse&amp;diff=9099&amp;oldid=prev"/>
		<updated>2024-01-05T14:48:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=4263_-_ifelse&amp;amp;diff=9099&amp;amp;oldid=8377&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Andrada378</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=4263_-_ifelse&amp;diff=8377&amp;oldid=prev</id>
		<title>Andrada378: Pagină nouă: &lt;u&gt;&#039;&#039;Cerință&#039;&#039;&lt;/u&gt;  Studiind instrucțiunea if, Alinutza a aflat că ramura else se asociază celui mai apropiat if neasociat încă. Aprofundând studiul, a extras din fiecare program scris cuvintele if și else. Din neatenție a transcris greșit, pierzând asocierea corectă if else. Ajutați-o voi să aibă scrierea corectă, folosind un număr minim de modificări. O modificare înseamnă să înlocuim un cuvânt if cu else sau un cuvânt else cu if.  &#039;&#039;&lt;u&gt;Date de intr...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4263_-_ifelse&amp;diff=8377&amp;oldid=prev"/>
		<updated>2023-12-26T13:49:29Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: &amp;lt;u&amp;gt;&amp;#039;&amp;#039;Cerință&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;  Studiind instrucțiunea if, Alinutza a aflat că ramura else se asociază celui mai apropiat if neasociat încă. Aprofundând studiul, a extras din fiecare program scris cuvintele if și else. Din neatenție a transcris greșit, pierzând asocierea corectă if else. Ajutați-o voi să aibă scrierea corectă, folosind un număr minim de modificări. O modificare înseamnă să înlocuim un cuvânt if cu else sau un cuvânt else cu if.  &amp;#039;&amp;#039;&amp;lt;u&amp;gt;Date de intr...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;Cerință&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Studiind instrucțiunea if, Alinutza a aflat că ramura else se asociază celui mai apropiat if neasociat încă. Aprofundând studiul, a extras din fiecare program scris cuvintele if și else. Din neatenție a transcris greșit, pierzând asocierea corectă if else. Ajutați-o voi să aibă scrierea corectă, folosind un număr minim de modificări. O modificare înseamnă să înlocuim un cuvânt if cu else sau un cuvânt else cu if.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Date de intrare&amp;lt;/u&amp;gt;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Fisierul ifelse.in conține pe prima linie un număr natural n. Pe fiecare din următoarele n linii, se află câte un șir de caractere. Fiecare șir conține cuvinte if și else separate prin câte un spațiu, scrise cu litere mici.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Date de iesire&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Fisierul ifelse.out va conține n valori reprezentând numărul minim de modificări efectuate astfel încât asocierea if else să fie corectă, sau -1 dacă nu este posibil pentru șirul de pe linia corespunzătoare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;Restricții și precizări&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
în scrierea corectă fiecare if va avea asociat un else;&lt;br /&gt;
&lt;br /&gt;
n este un număr natural mai mic sau egal cu 10;&lt;br /&gt;
&lt;br /&gt;
fiecare linie poate avea cel mult 10000 de cuvinte if sau else separate prin cate un spațiu;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;Exemplu:&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ifelse.in&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
if else if if else if&lt;br /&gt;
&lt;br /&gt;
if else if else&lt;br /&gt;
&lt;br /&gt;
if else if&lt;br /&gt;
&lt;br /&gt;
ifelse.out&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
-1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;Explicație&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pentru primul caz va fi efectuată o singura modificare, ultimul if va fi transformat în else&lt;br /&gt;
&lt;br /&gt;
În al doilea caz scrierea este corectă.&lt;br /&gt;
&lt;br /&gt;
În al treilea caz nu se poate stabili o asociere corectă if else.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;#039;&amp;#039;Rezolvare&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def corect_associere(sir):&lt;br /&gt;
&lt;br /&gt;
    stiva = []&lt;br /&gt;
&lt;br /&gt;
    modificari = 0&lt;br /&gt;
&lt;br /&gt;
    for cuvant in sir:&lt;br /&gt;
&lt;br /&gt;
        if cuvant == &amp;quot;if&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
            stiva.append(&amp;quot;if&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        elif cuvant == &amp;quot;else&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
            if not stiva:&lt;br /&gt;
&lt;br /&gt;
                stiva.append(&amp;quot;else&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
                modificari += 1&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
&lt;br /&gt;
                stiva.pop()&lt;br /&gt;
&lt;br /&gt;
    if stiva:&lt;br /&gt;
&lt;br /&gt;
        return -1&lt;br /&gt;
&lt;br /&gt;
    else:&lt;br /&gt;
&lt;br /&gt;
        return modificari&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
    # Deschideți fișierul de intrare pentru citire&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;ifelsein.txt&amp;quot;, &amp;quot;r&amp;quot;) as input_file:&lt;br /&gt;
&lt;br /&gt;
        # Citim numărul de linii&lt;br /&gt;
&lt;br /&gt;
        n = int(input_file.readline().strip())&lt;br /&gt;
&lt;br /&gt;
        # Citim șirurile de cuvinte if și else&lt;br /&gt;
&lt;br /&gt;
        siruri = [input_file.readline().split() for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    # Calculați numărul minim de modificări pentru fiecare șir&lt;br /&gt;
&lt;br /&gt;
    rezultate = [corect_associere(sir) for sir in siruri]&lt;br /&gt;
&lt;br /&gt;
    # Deschideți fișierul de ieșire pentru scriere&lt;br /&gt;
&lt;br /&gt;
    with open(&amp;quot;ifelseout.txt&amp;quot;, &amp;quot;w&amp;quot;) as output_file:&lt;br /&gt;
&lt;br /&gt;
        # Scrieți rezultatele în fișierul de ieșire&lt;br /&gt;
&lt;br /&gt;
        output_file.write(&amp;quot;\n&amp;quot;.join(map(str, rezultate)))&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
In fisierul &amp;quot;ifelsein.txt&amp;quot; am adaugat input ul necesar, rezultatele le am obtinut in &amp;quot;ifelseout.txt&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Andrada378</name></author>
	</entry>
</feed>