<?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=2343_-_Bec</id>
	<title>2343 - Bec - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2343_-_Bec"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2343_-_Bec&amp;action=history"/>
	<updated>2026-05-01T07:42:40Z</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=2343_-_Bec&amp;diff=8204&amp;oldid=prev</id>
		<title>Raul: Pagină nouă:  = Enunț = Într-o pădure sunt plantați &lt;code&gt;N*M&lt;/code&gt; copaci, pe &lt;code&gt;N&lt;/code&gt; rânduri şi &lt;code&gt;M&lt;/code&gt; coloane, fiecare copac aflându-se la egală distanţă de copacii vecini. Întrucât în pădure este cam întuneric, pădurarul (care supraveghează pădurea) montează &lt;code&gt;K&lt;/code&gt; becuri (câte un bec într-un copac). Aceste becuri au consum diferit de energie electrică. Fiecare bec luminează doar o parte dintre copaci. Un copac este luminat de un bec dac...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2343_-_Bec&amp;diff=8204&amp;oldid=prev"/>
		<updated>2023-12-17T10:12:34Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă:  = Enunț = Într-o pădure sunt plantați &amp;lt;code&amp;gt;N*M&amp;lt;/code&amp;gt; copaci, pe &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; rânduri şi &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; coloane, fiecare copac aflându-se la egală distanţă de copacii vecini. Întrucât în pădure este cam întuneric, pădurarul (care supraveghează pădurea) montează &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; becuri (câte un bec într-un copac). Aceste becuri au consum diferit de energie electrică. Fiecare bec luminează doar o parte dintre copaci. Un copac este luminat de un bec dac...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Enunț =&lt;br /&gt;
Într-o pădure sunt plantați &amp;lt;code&amp;gt;N*M&amp;lt;/code&amp;gt; copaci, pe &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; rânduri şi &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; coloane, fiecare copac aflându-se la egală distanţă de copacii vecini. Întrucât în pădure este cam întuneric, pădurarul (care supraveghează pădurea) montează &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; becuri (câte un bec într-un copac). Aceste becuri au consum diferit de energie electrică. Fiecare bec luminează doar o parte dintre copaci. Un copac este luminat de un bec dacă, trasând o linie dreaptă de la el la bec, niciun alt copac sau bec nu se află pe acea linie. &lt;br /&gt;
&lt;br /&gt;
Energia electrică fiind scumpă, pădurarul va trebui să renunţe la &amp;lt;code&amp;gt;K-1&amp;lt;/code&amp;gt; becuri şi să păstreze doar becul care luminează numărul maxim &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; de copaci. Dacă mai multe becuri dintre cele &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; luminează &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; copaci, pădurarul îl va păstra pe cel mai util adică care are cel mai mic consum de energie electrică.&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Să se scrie un program care să determine: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;1.&amp;lt;/code&amp;gt; numărul maxim &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; de copaci ce pot fi luminați de unul dintre cele &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; becuri&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;2.&amp;lt;/code&amp;gt; poziția (rândul &amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; şi coloana &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt;) becului cel mai util păstrat de pădurar.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fișierul de intrare &amp;lt;code&amp;gt;bec.in&amp;lt;/code&amp;gt; conține:&lt;br /&gt;
&lt;br /&gt;
* pe prima linie, patru numere naturale &amp;lt;code&amp;gt;P N M K&amp;lt;/code&amp;gt;, separate prin câte un spaţiu, reprezentând: cerința &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; ce trebuie rezolvată (&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; sau &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;), numărul &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; de rânduri,  numărul &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; de coloane, şi  numărul &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; de becuri&lt;br /&gt;
* pe fiecare din următoarele &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; linii, câte trei numere naturale &amp;lt;code&amp;gt;A B C&amp;lt;/code&amp;gt;, separate prin câte un spaţiu, reprezentând rândul &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; şi coloana &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; în care se află fiecare bec şi consumul &amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; de energie electrică a acestuia.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Dacă &amp;lt;code&amp;gt;P=1&amp;lt;/code&amp;gt;, atunci fișierul de ieșire &amp;lt;code&amp;gt;bec.out&amp;lt;/code&amp;gt; va conține pe prima linie numărul &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; ( răspunsul la cerința &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;). Altfel, dacă &amp;lt;code&amp;gt;P=2&amp;lt;/code&amp;gt;, atunci fişierul de ieşire &amp;lt;code&amp;gt;bec.out&amp;lt;/code&amp;gt; va conţine pe prima linie cele două numere naturale &amp;lt;code&amp;gt;R C&amp;lt;/code&amp;gt; (răspunsul la cerința &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;) separate prin câte un spațiu, cu semnificația din enunț.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;2 ≤ N ≤ 150&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;2 ≤ M ≤ 150&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ K ≤ N&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;1 ≤ K ≤ M&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;1 ≤ K ≤ 100&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ A ≤ N&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;1 ≤ B ≤ M&amp;lt;/code&amp;gt;; &amp;lt;code&amp;gt;1 ≤ C ≤ 10000&amp;lt;/code&amp;gt;  pentru fiecare bec&lt;br /&gt;
* nu există două becuri asezate pe același rând  și aceeași coloanâ&lt;br /&gt;
* nu există două becuri cu același consum de energie electrică&lt;br /&gt;
* se acordă &amp;lt;code&amp;gt;50%&amp;lt;/code&amp;gt; din punctaj pentru rezolvarea corectă a cerinței &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;50%&amp;lt;/code&amp;gt; din punctaj pentru rezolvarea corectă a cerinței &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Exemplul 1: =&lt;br /&gt;
&amp;lt;code&amp;gt;bec.in&amp;lt;/code&amp;gt;&lt;br /&gt;
 1 5 4 3&lt;br /&gt;
 2 3 80&lt;br /&gt;
 4 2 100&lt;br /&gt;
 4 3 70&lt;br /&gt;
&amp;lt;code&amp;gt;bec.out&amp;lt;/code&amp;gt;&lt;br /&gt;
 14 &lt;br /&gt;
&lt;br /&gt;
=== Explicație ===&lt;br /&gt;
&amp;lt;code&amp;gt;P=1&amp;lt;/code&amp;gt; . Se rezolvă cerința 1.&lt;br /&gt;
&lt;br /&gt;
Numerotăm copacii ca în tabloul alăturat. Primul bec, situat în rândul 2 şi coloana 3 (consum energie 80) luminează 14 copaci (nu îi luminează pe cei numerotați cu 5, 12 şi 16). &lt;br /&gt;
&lt;br /&gt;
Al doilea bec, situat în rândul 4 şi coloana 2 (consum energie 100) luminează 13 copaci (nu îi luminează pe cei numerotați cu 2, 6, 7 şi 13). &lt;br /&gt;
&lt;br /&gt;
Al treilea bec, situat în rândul 4 şi coloana 3 (consum energie 70) luminează 14 copaci (nu le luminează pe cei numerotați cu 3, 5 şi 12).&lt;br /&gt;
&lt;br /&gt;
== Încărcare soluție ==&lt;br /&gt;
&lt;br /&gt;
=== Lipește codul aici ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
A = [[0] * 151 for _ in range(151)]&lt;br /&gt;
n, m, k, p = map(int, input().split())&lt;br /&gt;
X = [0] * 101&lt;br /&gt;
Y = [0] * 101&lt;br /&gt;
C = [0] * 101&lt;br /&gt;
&lt;br /&gt;
def cmmdc(a, b):&lt;br /&gt;
    while b != 0:&lt;br /&gt;
        r = a % b&lt;br /&gt;
        a = b&lt;br /&gt;
        b = r&lt;br /&gt;
    return a&lt;br /&gt;
&lt;br /&gt;
for i in range(1, k + 1):&lt;br /&gt;
    X[i], Y[i], C[i] = map(int, input().split())&lt;br /&gt;
    A[X[i]][Y[i]] = 1&lt;br /&gt;
&lt;br /&gt;
c = 0&lt;br /&gt;
xmin = 0&lt;br /&gt;
cmin = 10000&lt;br /&gt;
cmax = 0&lt;br /&gt;
&lt;br /&gt;
for x in range(1, k + 1):&lt;br /&gt;
    c = 0&lt;br /&gt;
    for i in range(1, n + 1):&lt;br /&gt;
        for j in range(1, m + 1):&lt;br /&gt;
            if A[i][j] == 0 and cmmdc(abs(X[x] - i), abs(Y[x] - j)) == 1:&lt;br /&gt;
                c += 1&lt;br /&gt;
    if c &amp;gt; cmax:&lt;br /&gt;
        cmax = c&lt;br /&gt;
        xmin = x&lt;br /&gt;
        cmin = C[x]&lt;br /&gt;
    elif c == cmax and C[x] &amp;lt; cmin:&lt;br /&gt;
        xmin = x&lt;br /&gt;
        cmin = C[x]&lt;br /&gt;
&lt;br /&gt;
if p == 1:&lt;br /&gt;
    print(cmax)&lt;br /&gt;
else:&lt;br /&gt;
    print(X[xmin], Y[xmin])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raul</name></author>
	</entry>
</feed>