<?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=1078_-_Adun_Scad</id>
	<title>1078 - Adun Scad - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1078_-_Adun_Scad"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1078_-_Adun_Scad&amp;action=history"/>
	<updated>2026-05-01T08:48:37Z</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=1078_-_Adun_Scad&amp;diff=9076&amp;oldid=prev</id>
		<title>Andrada378 at 11:32, 5 January 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1078_-_Adun_Scad&amp;diff=9076&amp;oldid=prev"/>
		<updated>2024-01-05T11:32:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1078_-_Adun_Scad&amp;amp;diff=9076&amp;amp;oldid=8395&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Andrada378</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1078_-_Adun_Scad&amp;diff=8395&amp;oldid=prev</id>
		<title>Andrada378: Pagină nouă: Considerăm un număr întreg N şi un şir de M cifre zecimale nenule. Să se determine dacă numărul N poate fi rezultatul unei expresii aritmetice simple (fără paranteze), formată exclusiv din cifrele şirului citit şi din operatorii aritmetici desemnaţi pentru operaţiile de adunare şi scădere (+, -).  &#039;&#039;&lt;u&gt;&#039;&#039;&#039;Cerinţă&#039;&#039;&#039;&lt;/u&gt;&#039;&#039;  Scrieţi un program care citeşte numerele N şi M de pe prima linie a fişierului de intrare şi şirul de M cifre de pe linia următoa...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1078_-_Adun_Scad&amp;diff=8395&amp;oldid=prev"/>
		<updated>2023-12-26T17:42:41Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Considerăm un număr întreg N şi un şir de M cifre zecimale nenule. Să se determine dacă numărul N poate fi rezultatul unei expresii aritmetice simple (fără paranteze), formată exclusiv din cifrele şirului citit şi din operatorii aritmetici desemnaţi pentru operaţiile de adunare şi scădere (+, -).  &amp;#039;&amp;#039;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Cerinţă&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;  Scrieţi un program care citeşte numerele N şi M de pe prima linie a fişierului de intrare şi şirul de M cifre de pe linia următoa...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Considerăm un număr întreg N şi un şir de M cifre zecimale nenule. Să se determine dacă numărul N poate fi rezultatul unei expresii aritmetice simple (fără paranteze), formată exclusiv din cifrele şirului citit şi din operatorii aritmetici desemnaţi pentru operaţiile de adunare şi scădere (+, -).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Cerinţă&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte numerele N şi M de pe prima linie a fişierului de intrare şi şirul de M cifre de pe linia următoare şi determină şi afişează expresia găsită sau valoarea 0 în cazul în care nu există soluţie.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Date de intrare&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Fișierul de intrare adunscad.in conține pe prima linie numerele întregi N M, separate printr-un spaţiu, reprezentând valoarea ce trebuie obţinută la evaluarea expresiei şi numărul de cifre din şir. Linia a doua a fişierului de intrare conţine şirul celor M cifre nenule, separate prin câte un spaţiu.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Date de ieșire&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Fișierul de ieșire adunscad.out va conține pe prima linie expresia determinată, în cazul în care există soluţie, sau valoarea 0 în cazul în care nu există soluţie.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;u&amp;gt;Restricții și precizări&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-180 ≤ N ≤ 180&lt;br /&gt;
&lt;br /&gt;
2 ≤ M ≤ 20&lt;br /&gt;
&lt;br /&gt;
în şirul citit cifrele se pot repeta&lt;br /&gt;
&lt;br /&gt;
toate cifrele din şir trebuie să apară şi în expresia aritmetică, în aceeaşi ordine în care au fost citite&lt;br /&gt;
&lt;br /&gt;
în expresia aritmetică, orice cifră trebuie să fie precedată de un operator; în cazul în care prima cifră este precedată de operatorul &amp;#039;+&amp;#039; acesta nu se pune în expresie&lt;br /&gt;
&lt;br /&gt;
în expresia aritmetică nu există spaţii&lt;br /&gt;
&lt;br /&gt;
expresia aritmetică se termină cu caracterul sfârşit de linie&lt;br /&gt;
&lt;br /&gt;
în cazul în care soluţia nu este unică se va afişa o soluţie corectă&lt;br /&gt;
&lt;br /&gt;
Exemplu 1&lt;br /&gt;
&lt;br /&gt;
adunscad.in&lt;br /&gt;
&lt;br /&gt;
21 4&lt;br /&gt;
&lt;br /&gt;
3 9 1 8&lt;br /&gt;
&lt;br /&gt;
adunscad.out&lt;br /&gt;
&lt;br /&gt;
3+9+1+8&lt;br /&gt;
&lt;br /&gt;
Exemplu 2&lt;br /&gt;
&lt;br /&gt;
adunscad.in&lt;br /&gt;
&lt;br /&gt;
-1 4&lt;br /&gt;
&lt;br /&gt;
1 2 3 5&lt;br /&gt;
&lt;br /&gt;
adunscad.out&lt;br /&gt;
&lt;br /&gt;
-1+2+3-5&lt;br /&gt;
&lt;br /&gt;
Exemplu 3&lt;br /&gt;
&lt;br /&gt;
adunscad.in&lt;br /&gt;
&lt;br /&gt;
-7 7&lt;br /&gt;
&lt;br /&gt;
1 1 1 1 1 1 1&lt;br /&gt;
&lt;br /&gt;
adunscad.out&lt;br /&gt;
&lt;br /&gt;
-1-1-1-1-1-1-1&lt;br /&gt;
&lt;br /&gt;
Exemplu 4&lt;br /&gt;
&lt;br /&gt;
adunscad.in&lt;br /&gt;
&lt;br /&gt;
12 3&lt;br /&gt;
&lt;br /&gt;
1 2 3&lt;br /&gt;
&lt;br /&gt;
adunscad.out&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;Rezolvare&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
def gaseste_expresie(N, cifre):&lt;br /&gt;
&lt;br /&gt;
    M = len(cifre)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1 &amp;lt;&amp;lt; (M - 1)):&lt;br /&gt;
&lt;br /&gt;
        expresie = str(cifre[0])&lt;br /&gt;
&lt;br /&gt;
        valoare = int(cifre[0])&lt;br /&gt;
&lt;br /&gt;
        for j in range(M - 1):&lt;br /&gt;
&lt;br /&gt;
            if (i &amp;gt;&amp;gt; j) &amp;amp; 1:&lt;br /&gt;
&lt;br /&gt;
                expresie += &amp;#039;+&amp;#039; + str(cifre[j + 1])&lt;br /&gt;
&lt;br /&gt;
                valoare += int(cifre[j + 1])&lt;br /&gt;
&lt;br /&gt;
            else:&lt;br /&gt;
&lt;br /&gt;
                expresie += &amp;#039;-&amp;#039; + str(cifre[j + 1])&lt;br /&gt;
&lt;br /&gt;
                valoare -= int(cifre[j + 1])&lt;br /&gt;
&lt;br /&gt;
        if valoare == N:&lt;br /&gt;
&lt;br /&gt;
            return expresie&lt;br /&gt;
&lt;br /&gt;
    return 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Citire date de intrare&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;adunscad.in&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
&lt;br /&gt;
    N, M = map(int, file.readline().split())&lt;br /&gt;
&lt;br /&gt;
    cifre = list(map(int, file.readline().split()))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Găsire expresie sau 0 în cazul în care nu există soluție&lt;br /&gt;
&lt;br /&gt;
rezultat = gaseste_expresie(N, cifre)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Scriere rezultat în fișierul de ieșire&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;adunscad.out&amp;quot;, &amp;quot;w&amp;quot;) as file:&lt;br /&gt;
&lt;br /&gt;
    file.write(str(rezultat))&lt;/div&gt;</summary>
		<author><name>Andrada378</name></author>
	</entry>
</feed>