<?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=2466_-_Proiectoare</id>
	<title>2466 - Proiectoare - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2466_-_Proiectoare"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2466_-_Proiectoare&amp;action=history"/>
	<updated>2026-06-17T07:12:33Z</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=2466_-_Proiectoare&amp;diff=8826&amp;oldid=prev</id>
		<title>Zmicala Narcis: Pagină nouă: Primăria a montat, pe faleza din Mamaia, &#039;&#039;&#039;N&#039;&#039;&#039; proiectoare așezate liniar, pentru fiecare cunoscându-se zona de faleză pe care o luminează, sub forma unui interval [&#039;&#039;&#039;s, d&#039;&#039;&#039;], unde &#039;&#039;&#039;s&#039;&#039;&#039; și &#039;&#039;&#039;d&#039;&#039;&#039; (&#039;&#039;&#039;s &lt; d&#039;&#039;&#039;) sunt numere naturale reprezentând distanțele față de punctul unde începe faleza. Pentru a verifica eficiența iluminării falezei, tehnicienii primăriei vor să determine intervalul de faleză de lungime maximă, iluminat de cel mult &#039;&#039;&#039;K&#039;&#039;&#039; proiecto...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2466_-_Proiectoare&amp;diff=8826&amp;oldid=prev"/>
		<updated>2024-01-03T00:57:44Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Primăria a montat, pe faleza din Mamaia, &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; proiectoare așezate liniar, pentru fiecare cunoscându-se zona de faleză pe care o luminează, sub forma unui interval [&amp;#039;&amp;#039;&amp;#039;s, d&amp;#039;&amp;#039;&amp;#039;], unde &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;s &amp;lt; d&amp;#039;&amp;#039;&amp;#039;) sunt numere naturale reprezentând distanțele față de punctul unde începe faleza. Pentru a verifica eficiența iluminării falezei, tehnicienii primăriei vor să determine intervalul de faleză de lungime maximă, iluminat de cel mult &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039; proiecto...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Primăria a montat, pe faleza din Mamaia, &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; proiectoare așezate liniar, pentru fiecare cunoscându-se zona de faleză pe care o luminează, sub forma unui interval [&amp;#039;&amp;#039;&amp;#039;s, d&amp;#039;&amp;#039;&amp;#039;], unde &amp;#039;&amp;#039;&amp;#039;s&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;d&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;s &amp;lt; d&amp;#039;&amp;#039;&amp;#039;) sunt numere naturale reprezentând distanțele față de punctul unde începe faleza. Pentru a verifica eficiența iluminării falezei, tehnicienii primăriei vor să determine intervalul de faleză de lungime maximă, iluminat de cel mult &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039; proiectoare, conținut într-un interval &amp;#039;&amp;#039;&amp;#039;[X, Y]&amp;#039;&amp;#039;&amp;#039; precizat. Pentru a fi siguri de corectitudinea rezultatelor obținute, tehnicienii realizează &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039; astfel de verificări.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Dându-se &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039; intervale de forma &amp;#039;&amp;#039;&amp;#039;[Xi, Yi]&amp;#039;&amp;#039;&amp;#039; determinați, pentru fiecare dintre acestea, câte un interval de lungime maximă iluminat de cel mult &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039; proiectoare. Dacă nici un proiector nu iluminează vreo porțiune din intervalul &amp;#039;&amp;#039;&amp;#039;[Xi, Yi]&amp;#039;&amp;#039;&amp;#039; se va afișa valoarea &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Datele de intrare se citesc din fișierul text &amp;#039;&amp;#039;&amp;#039;proiectoarein.txt&amp;#039;&amp;#039;&amp;#039;, care are structura următoare:&lt;br /&gt;
* pe prima linie se află valorile naturale &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;, separate prin câte un spațiu, cu semnificația din enunț;&lt;br /&gt;
* pe următoarele &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039; linii se află câte o pereche de valori naturale &amp;#039;&amp;#039;&amp;#039;Si&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Di&amp;#039;&amp;#039;&amp;#039;, separate printr-un spațiu, reprezentând intervalele iluminate de fiecare proiector;&lt;br /&gt;
* pe următoarele &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039; linii se află câte o pereche de valori naturale &amp;#039;&amp;#039;&amp;#039;Xi&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Yi&amp;#039;&amp;#039;&amp;#039;, separate printr-un spațiu, reprezentând intervalele pentru care se realizează verificările.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
În fișierul text &amp;#039;&amp;#039;&amp;#039;proiectoareout.txt&amp;#039;&amp;#039;&amp;#039; se vor scrie &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039; linii; pe linia &amp;#039;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;(1 ≤ i ≤ Q)&amp;#039;&amp;#039;&amp;#039; se va scrie un număr natural reprezentând lungimea intervalului obținut ca răspuns la verificarea efectuată pentru intervalul &amp;#039;&amp;#039;&amp;#039;[Xi, Yi]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0 ≤ S &amp;lt; D ≤ 1 000 000 000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ K ≤ N ≤ 100 000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1 ≤ Q ≤ 100 000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru teste în valoare de &amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039; puncte, &amp;#039;&amp;#039;&amp;#039;K = 1&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;n ≤ 2000&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;Q ≤ 2000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru teste în valoare de alte &amp;#039;&amp;#039;&amp;#039;38&amp;#039;&amp;#039;&amp;#039; puncte, &amp;#039;&amp;#039;&amp;#039;K = 1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru teste în valoare de alte &amp;#039;&amp;#039;&amp;#039;21&amp;#039;&amp;#039;&amp;#039; puncte, &amp;#039;&amp;#039;&amp;#039;K = 2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pentru teste în valoare de alte &amp;#039;&amp;#039;&amp;#039;10&amp;#039;&amp;#039;&amp;#039; puncte, &amp;#039;&amp;#039;&amp;#039;K ≤ 30&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; proiectoarein.txt&lt;br /&gt;
: 5 5 1&lt;br /&gt;
: 1 4&lt;br /&gt;
: 2 3&lt;br /&gt;
: 3 6&lt;br /&gt;
: 4 7&lt;br /&gt;
: 4 8&lt;br /&gt;
: 1 10&lt;br /&gt;
: 2 5&lt;br /&gt;
: 3 4&lt;br /&gt;
: 6 8&lt;br /&gt;
: 8 9&lt;br /&gt;
; proiectoareout.txt&lt;br /&gt;
: Datele introduse corespund restricțiilor impuse.&lt;br /&gt;
: 4&lt;br /&gt;
: 2&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 0&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Pentru verificarea &amp;#039;&amp;#039;&amp;#039;[1,10]&amp;#039;&amp;#039;&amp;#039; cel mai lung interval complet iluminat este &amp;#039;&amp;#039;&amp;#039;[4,8]&amp;#039;&amp;#039;&amp;#039; cu lungimea &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Pentru verificarea &amp;#039;&amp;#039;&amp;#039;[2,5]&amp;#039;&amp;#039;&amp;#039; cele mai lungi intervale complet iluminate sunt &amp;#039;&amp;#039;&amp;#039;[2,4]&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;[3,5]&amp;#039;&amp;#039;&amp;#039;, ambele au lungimea &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Pentru verificarea &amp;#039;&amp;#039;&amp;#039;[3,4]&amp;#039;&amp;#039;&amp;#039; cel mai lung interval complet iluminat este &amp;#039;&amp;#039;&amp;#039;[3,4]&amp;#039;&amp;#039;&amp;#039; cu lungimea &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Pentru verificarea &amp;#039;&amp;#039;&amp;#039;[6,8]&amp;#039;&amp;#039;&amp;#039; cel mai lung interval complet iluminat este &amp;#039;&amp;#039;&amp;#039;[6,8]&amp;#039;&amp;#039;&amp;#039; cu lungimea &amp;#039;&amp;#039;&amp;#039;2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Pentru verificarea &amp;#039;&amp;#039;&amp;#039;[8,9]&amp;#039;&amp;#039;&amp;#039; se afișează valoarea &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; proiectoarein.txt&lt;br /&gt;
: 5 5 1&lt;br /&gt;
: 1 4 2&lt;br /&gt;
: 2 3 1&lt;br /&gt;
: 3 6 1&lt;br /&gt;
: 4 7 1&lt;br /&gt;
: 4 8 1&lt;br /&gt;
: 1 10&lt;br /&gt;
: 2 5&lt;br /&gt;
: 3 4&lt;br /&gt;
: 6 8&lt;br /&gt;
: 8 9&lt;br /&gt;
; proiectoareout.txt&lt;br /&gt;
: Datele introduse nu corespund restricțiilor impuse.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# 2466 - Proiectoare&lt;br /&gt;
def validare(lista_proiectoare1, lista_verificari1, k_max1):           # functia de validare a datelor de intrare&lt;br /&gt;
    n, q = len(lista_proiectoare1), len(lista_verificari1)&lt;br /&gt;
    if not (1 &amp;lt;= k_max1 &amp;lt;= n &amp;lt;= 100000 and 1 &amp;lt;= q &amp;lt;= 100000):&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    for s, d, k_proiector in lista_proiectoare1:&lt;br /&gt;
        if not (0 &amp;lt;= s &amp;lt; d &amp;lt;= 1000000000 and 1 &amp;lt;= k_proiector &amp;lt;= n):&lt;br /&gt;
            raise ValueError&lt;br /&gt;
&lt;br /&gt;
    if k_max1 == 1 and n &amp;gt; 2000 and q &amp;gt; 2000:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    if k_max1 &amp;gt; 30:&lt;br /&gt;
        raise ValueError&lt;br /&gt;
&lt;br /&gt;
    fisier_iesire.write(&amp;quot;Datele de intrare corespund restrictiilor impuse\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# functia de rezolvare va fi implementata aici&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    fisier_intrare = open(&amp;quot;proiectoarein.txt&amp;quot;, &amp;quot;r&amp;quot;)         # declararea fisierelor&lt;br /&gt;
    fisier_iesire = open(&amp;quot;proiectoareout.txt&amp;quot;, &amp;quot;w&amp;quot;)       # fisierul out trebuie declarat cu optiunea &amp;quot;w&amp;quot; (write)&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        lista_proiectoare = []&lt;br /&gt;
        lista_verificari = []&lt;br /&gt;
        k_max = 0&lt;br /&gt;
        # citirea si prelucrarea datelor de intrare se face aici&lt;br /&gt;
&lt;br /&gt;
        validare(lista_proiectoare, lista_verificari, k_max)                 # apelul functiei de validare&lt;br /&gt;
        # apelul functiei de rezolvare se face aici&lt;br /&gt;
&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        fisier_iesire.write(&amp;quot;Datele de intrare nu corespund restrictiilor impuse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zmicala Narcis</name></author>
	</entry>
</feed>