<?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=0880_-_Soarece</id>
	<title>0880 - Soarece - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=0880_-_Soarece"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0880_-_Soarece&amp;action=history"/>
	<updated>2026-05-03T03:38:50Z</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=0880_-_Soarece&amp;diff=9901&amp;oldid=prev</id>
		<title>Benzar Ioan at 23:10, 2 June 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0880_-_Soarece&amp;diff=9901&amp;oldid=prev"/>
		<updated>2024-06-02T23:10:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=0880_-_Soarece&amp;amp;diff=9901&amp;amp;oldid=9859&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=0880_-_Soarece&amp;diff=9859&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Într-un laborator de biologie, cercetătorii studiază comportamentul unui șoarece care navighează printr-un labirint. Șoarecele poate adăuga mișcări la coada sa de acțiuni sau poate elimina mișcările anterioare pe măsură ce găsește noi căi. Sarcina ta este să implementezi un program care să simuleze aceste operațiuni asupra unei cozi de acțiuni. == Date de intrare == Programul citește de la tastatură:  Un număr întreg n reprezentând num...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=0880_-_Soarece&amp;diff=9859&amp;oldid=prev"/>
		<updated>2024-06-02T18:10:38Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Într-un laborator de biologie, cercetătorii studiază comportamentul unui șoarece care navighează printr-un labirint. Șoarecele poate adăuga mișcări la coada sa de acțiuni sau poate elimina mișcările anterioare pe măsură ce găsește noi căi. Sarcina ta este să implementezi un program care să simuleze aceste operațiuni asupra unei cozi de acțiuni. == Date de intrare == Programul citește de la tastatură:  Un număr întreg n reprezentând num...&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;
Într-un laborator de biologie, cercetătorii studiază comportamentul unui șoarece care navighează printr-un labirint. Șoarecele poate adăuga mișcări la coada sa de acțiuni sau poate elimina mișcările anterioare pe măsură ce găsește noi căi. Sarcina ta este să implementezi un program care să simuleze aceste operațiuni asupra unei cozi de acțiuni.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură:&lt;br /&gt;
&lt;br /&gt;
Un număr întreg n reprezentând numărul de operațiuni.&lt;br /&gt;
O listă de n operațiuni, fiecare operațiune fiind de forma &amp;quot;ENQUEUE X&amp;quot; (unde X este o mișcare) sau &amp;quot;DEQUEUE&amp;quot;.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Pe ecran se va afișa coada rezultată după efectuarea tuturor operațiunilor. Dacă o operațiune &amp;quot;DEQUEUE&amp;quot; este efectuată pe o coadă goală, se va afișa mesajul &amp;quot;Eroare: coada goală&amp;quot;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 &amp;amp;les; &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; &amp;amp;les; 100&lt;br /&gt;
* &amp;#039;x&amp;#039; este întotdeauna o mișcare reprezentată printr-un șir de caractere.&lt;br /&gt;
&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
5&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE left&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE right&amp;lt;br&amp;gt;&lt;br /&gt;
DEQUEUE&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE up&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE down&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
[&amp;#039;right&amp;#039;, &amp;#039;up&amp;#039;, &amp;#039;down&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
== Exemplu 2 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
4&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE forward&amp;lt;br&amp;gt;&lt;br /&gt;
DEQUEUE&amp;lt;br&amp;gt;&lt;br /&gt;
DEQUEUE&amp;lt;br&amp;gt;&lt;br /&gt;
ENQUEUE backward&lt;br /&gt;
&lt;br /&gt;
;Iesire&lt;br /&gt;
Eroare: coada goală&lt;br /&gt;
[&amp;#039;backward&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
Datele de intrare nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def citeste_date():&lt;br /&gt;
    try:&lt;br /&gt;
        n = int(input(&amp;quot;Introduceți numărul de operațiuni (n): &amp;quot;))&lt;br /&gt;
        operatiuni = []&lt;br /&gt;
        for _ in range(n):&lt;br /&gt;
            operatiune = input().strip()&lt;br /&gt;
            operatiuni.append(operatiune)&lt;br /&gt;
        return n, operatiuni&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        return None, None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def valideaza_date(n, operatiuni):&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 100):&lt;br /&gt;
        return False&lt;br /&gt;
    for operatiune in operatiuni:&lt;br /&gt;
        if not (operatiune.startswith(&amp;quot;ENQUEUE &amp;quot;) or operatiune == &amp;quot;DEQUEUE&amp;quot;):&lt;br /&gt;
            return False&lt;br /&gt;
        if operatiune.startswith(&amp;quot;ENQUEUE &amp;quot;) and len(operatiune.split()) != 2:&lt;br /&gt;
            return False&lt;br /&gt;
        if operatiune.startswith(&amp;quot;ENQUEUE &amp;quot;) and not operatiune.split()[1].isalpha():&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def proceseaza_operatiuni(n, operatiuni):&lt;br /&gt;
    coada = []&lt;br /&gt;
    for operatiune in operatiuni:&lt;br /&gt;
        if operatiune.startswith(&amp;quot;ENQUEUE &amp;quot;):&lt;br /&gt;
            _, miscare = operatiune.split()&lt;br /&gt;
            coada.append(miscare)&lt;br /&gt;
        elif operatiune == &amp;quot;DEQUEUE&amp;quot;:&lt;br /&gt;
            if coada:&lt;br /&gt;
                coada.pop(0)&lt;br /&gt;
            else:&lt;br /&gt;
                print(&amp;quot;Eroare: coada goală&amp;quot;)&lt;br /&gt;
    return coada&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, operatiuni = citeste_date()&lt;br /&gt;
&lt;br /&gt;
    if n is None or operatiuni is None or not valideaza_date(n, operatiuni):&lt;br /&gt;
        print(&amp;quot;Datele de intrare nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;Datele de intrare corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
    rezultat = proceseaza_operatiuni(n, operatiuni)&lt;br /&gt;
    print(rezultat)&lt;br /&gt;
&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>Benzar Ioan</name></author>
	</entry>
</feed>