<?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=3991_-_Modifica_Paranteze</id>
	<title>3991 - Modifica Paranteze - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=3991_-_Modifica_Paranteze"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3991_-_Modifica_Paranteze&amp;action=history"/>
	<updated>2026-05-02T07:52:18Z</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=3991_-_Modifica_Paranteze&amp;diff=9162&amp;oldid=prev</id>
		<title>Rus Marius: Pagină nouă: = Cerința = Fie un șir de paranteze rotunde, deschise sau închise. Putem efectua de câte ori dorim operația de transformare a unei paranteze deschise într-una închisă sau invers. Să se determine numărul minim de operații necesare transformării secvenței inițiale într-una corect parantezată. Dacă acest lucru nu este posibil, se va afișa &lt;code&gt;-1&lt;/code&gt;.  = Date de intrare = Programul citește de la tastatură șirul de paranteze rotunde, fără spații.  = Da...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=3991_-_Modifica_Paranteze&amp;diff=9162&amp;oldid=prev"/>
		<updated>2024-01-07T11:00:56Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: = Cerința = Fie un șir de paranteze rotunde, deschise sau închise. Putem efectua de câte ori dorim operația de transformare a unei paranteze deschise într-una închisă sau invers. Să se determine numărul minim de operații necesare transformării secvenței inițiale într-una corect parantezată. Dacă acest lucru nu este posibil, se va afișa &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;.  = Date de intrare = Programul citește de la tastatură șirul de paranteze rotunde, fără spații.  = Da...&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 un șir de paranteze rotunde, deschise sau închise. Putem efectua de câte ori dorim operația de transformare a unei paranteze deschise într-una închisă sau invers. Să se determine numărul minim de operații necesare transformării secvenței inițiale într-una corect parantezată. Dacă acest lucru nu este posibil, se va afișa &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Programul citește de la tastatură șirul de paranteze rotunde, fără spații.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Programul va afișa pe ecran numărul minim de operații necesar pentru a transforma șirul într-o secvență corect parantezată. Dacă nu este posibilă parantezarea corectă, se va afișa &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ numărul de paranteze ≤ 1000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Exemplul 1: =&lt;br /&gt;
Intrare&lt;br /&gt;
 ((((&lt;br /&gt;
Ieșire&lt;br /&gt;
 2&lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
O posibilitate este să modificăm ultimele două paranteze deschise în paranteze închise și să obținem &amp;lt;code&amp;gt;(())&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2: ==&lt;br /&gt;
Intrare&lt;br /&gt;
 (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((&lt;br /&gt;
Ieșire&lt;br /&gt;
 Datele nu corespund restrictiilor impuse.&lt;br /&gt;
&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python3&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
def check_restriction(s):&lt;br /&gt;
    num_parentheses = s.count(&amp;#039;(&amp;#039;) + s.count(&amp;#039;)&amp;#039;)&lt;br /&gt;
    return 1 &amp;lt;= num_parentheses &amp;lt;= 1000&lt;br /&gt;
&lt;br /&gt;
def nr_min_op(s):&lt;br /&gt;
    cnt = 0&lt;br /&gt;
    nr_op = 0&lt;br /&gt;
    n = len(s)&lt;br /&gt;
&lt;br /&gt;
    if not check_restriction(s):&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
        return -1&lt;br /&gt;
&lt;br /&gt;
    if n % 2 == 1:&lt;br /&gt;
        return -1&lt;br /&gt;
&lt;br /&gt;
    for i in range(n):&lt;br /&gt;
        if s[i] == &amp;#039;(&amp;#039;:&lt;br /&gt;
            cnt += 1&lt;br /&gt;
        else:&lt;br /&gt;
            cnt -= 1&lt;br /&gt;
&lt;br /&gt;
        if cnt &amp;lt; 0:&lt;br /&gt;
            nr_op += 1&lt;br /&gt;
            cnt = 1&lt;br /&gt;
&lt;br /&gt;
    nr_op += cnt // 2&lt;br /&gt;
    return nr_op&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    s = input(&amp;quot;Introduceti un sir cu paranteze: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if check_restriction(s):&lt;br /&gt;
        result = nr_min_op(s)&lt;br /&gt;
        if result != -1:&lt;br /&gt;
            print(result)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restrictiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rus Marius</name></author>
	</entry>
</feed>