<?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=1217_-_LightBot</id>
	<title>1217 - LightBot - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1217_-_LightBot"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1217_-_LightBot&amp;action=history"/>
	<updated>2026-05-01T06:26: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=1217_-_LightBot&amp;diff=9032&amp;oldid=prev</id>
		<title>Miawinator: Pagină nouă: În acest an evenimentul ”Hour of Code” a înregistrat un număr record de participanți din țara noastră. În cadrul acestui eveniment una dintre cele mai accesate aplicații a fost Lightbot, care a permis elevilor să-și testeze abilitățile de programare.  Aplicația Lightbot are &lt;code&gt;N&lt;/code&gt; nivele, numerotate consecutiv de la &lt;code&gt;1&lt;/code&gt; la &lt;code&gt;N&lt;/code&gt;, în ordinea strict crescătoare a complexității lor. Lightbot a permis fiecărui participant să înc...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1217_-_LightBot&amp;diff=9032&amp;oldid=prev"/>
		<updated>2024-01-04T22:21:26Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: În acest an evenimentul ”Hour of Code” a înregistrat un număr record de participanți din țara noastră. În cadrul acestui eveniment una dintre cele mai accesate aplicații a fost Lightbot, care a permis elevilor să-și testeze abilitățile de programare.  Aplicația Lightbot are &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; nivele, numerotate consecutiv de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, în ordinea strict crescătoare a complexității lor. Lightbot a permis fiecărui participant să înc...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;În acest an evenimentul ”Hour of Code” a înregistrat un număr record de participanți din țara noastră. În cadrul acestui eveniment una dintre cele mai accesate aplicații a fost Lightbot, care a permis elevilor să-și testeze abilitățile de programare.&lt;br /&gt;
&lt;br /&gt;
Aplicația Lightbot are &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; nivele, numerotate consecutiv de la &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; la &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, în ordinea strict crescătoare a complexității lor. Lightbot a permis fiecărui participant să înceapă cu orice nivel strict mai mic decât &amp;lt;code&amp;gt;N-1&amp;lt;/code&amp;gt; și să sară peste un singur nivel, fără a finaliza codul, trecând la nivelul următor celui sărit. La finalizarea cu succes a codului corespunzător nivelului curent, participantul este promovat la nivelul imediat următor. Fiecare participant a început scrierea codurilor la un nivel &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; și a sărit peste un nivel &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;P &amp;lt; L &amp;lt; P + K&amp;lt;/code&amp;gt;), finalizând &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; nivele memorate ca o succesiune de numere naturale de forma &amp;lt;code&amp;gt;P, P+1,..., L-1, L+1,..., P+K&amp;lt;/code&amp;gt;. Succesiunile de nivele finalizate de participanți au fost memorate în fișierul &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt;. Succesiunile corespunzătoare participanților nu se intercalează în fișier.&lt;br /&gt;
&lt;br /&gt;
Scrieţi un program care citeşte succesiunile corespunzătoare nivelelor finalizate de participanții care au jucat Lightbot și determină:&lt;br /&gt;
&lt;br /&gt;
1. numărul total de participanți;&lt;br /&gt;
&lt;br /&gt;
2. numărul celui mai dificil nivel care a fost rezolvat de un număr maxim de participanți;&lt;br /&gt;
&lt;br /&gt;
3. pentru fiecare participant, numărul nivelului sărit de acesta.&lt;br /&gt;
&lt;br /&gt;
= Date de intrare =&lt;br /&gt;
Fişierul de intrare &amp;lt;code&amp;gt;input.txt&amp;lt;/code&amp;gt; conţine pe prima linie una dintre valorile &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; , &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; sau &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, reprezentând cerinţa 1 dacă se cere determinarea numărului total de participanți, cerinţa 2 dacă se cere determinarea numărului celui mai dificil nivel care a fost rezolvat de un număr maxim de participanți, respectiv cerinţa 3, dacă se cere determinarea, pentru fiecare participant, a numărului nivelului sărit de acesta.&lt;br /&gt;
&lt;br /&gt;
A doua linie a fișierului conține numărul natural &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; de nivele corespunzător aplicației Lightbot, iar pe a treia linie, succesiunile de numere naturale nenule corespunzătoare nivelelor finalizate de participanți, separate două câte două prin câte un spaţiu.&lt;br /&gt;
&lt;br /&gt;
= Date de ieșire =&lt;br /&gt;
Fişierul de ieşire &amp;lt;code&amp;gt;output.txt&amp;lt;/code&amp;gt; va conţine pe prima linie un număr natural &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;, reprezentând numărul total de participanți dacă cerința a fost 1, un număr natural reprezentând numărul celui mai dificil nivel care a fost rezolvat de un număr maxim de participanți, dacă cerința a fost 2, respectiv, o secvență de &amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt; numere naturale separate prin câte un spațiu ce reprezintă nivele sărite de participanți în ordinea succesiunilor memorate în fișier, dacă cerința a fost 3.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;3 ≤ N ≤ 200000&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
1 2 4 2 4 6 7 9&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
Sunt trei participanți, care au finalizat nivelele: &amp;lt;code&amp;gt;1 2 4&amp;lt;/code&amp;gt; (primul), &amp;lt;code&amp;gt;2 4&amp;lt;/code&amp;gt; (al doilea) şi &amp;lt;code&amp;gt;6 7 9&amp;lt;/code&amp;gt; (al treilea).&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
1 2 4 2 4 6 7 9&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
Nivele &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; și &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; au fost finalizate de câte doi participanți, cel mai greu fiind nivelul &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 3 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
1 2 4 2 4 6 7 9&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
3 3 8&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
Primul participant a sărit nivelul &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, al doilea nivelul &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, iar al treilea nivelul &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Exemplul 4 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
99999999999999&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
&lt;br /&gt;
1 2 4 2 4 6 7 9&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
Input-ul nu convine conditiilor&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 verificare(n):&lt;br /&gt;
    if not(3&amp;lt;=n&amp;lt;=200000):&lt;br /&gt;
        print(&amp;quot;Input-ul nu convine conditiilor&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
with open(&amp;quot;input.txt&amp;quot;, &amp;quot;r&amp;quot;) as f, open(&amp;quot;output.txt&amp;quot;, &amp;quot;w&amp;quot;) as g:&lt;br /&gt;
    n, fr, P, np, cer = [0] * 200010, [0] * 200010, [0] * 200010, 0, 0&lt;br /&gt;
    a, b, l, maxim, nm, i = 0, 0, 0, 0, 0, 0&lt;br /&gt;
&lt;br /&gt;
    cer = int(f.readline())&lt;br /&gt;
    n = int(f.readline())&lt;br /&gt;
    verificare(n)&lt;br /&gt;
    a = int(f.readline(1))&lt;br /&gt;
    fr[a] += 1&lt;br /&gt;
    maxim = 1&lt;br /&gt;
    nm = a&lt;br /&gt;
    np = 0&lt;br /&gt;
&lt;br /&gt;
    for line in f:&lt;br /&gt;
        for b in map(int, line.split()):&lt;br /&gt;
            fr[b] += 1&lt;br /&gt;
&lt;br /&gt;
            if fr[b] &amp;gt; maxim:&lt;br /&gt;
                maxim = fr[b]&lt;br /&gt;
                nm = b&lt;br /&gt;
            elif fr[b] == maxim and b &amp;gt; nm:&lt;br /&gt;
                nm = b&lt;br /&gt;
&lt;br /&gt;
            if l == 0 and b - a == 2:&lt;br /&gt;
                l = b - 1&lt;br /&gt;
            elif b - a != 1:&lt;br /&gt;
                np += 1&lt;br /&gt;
                P[np] = l&lt;br /&gt;
                l = 0&lt;br /&gt;
&lt;br /&gt;
            a = b&lt;br /&gt;
&lt;br /&gt;
    np += 1&lt;br /&gt;
    P[np] = l&lt;br /&gt;
&lt;br /&gt;
    if cer == 1:&lt;br /&gt;
        g.write(f&amp;quot;{np}\n&amp;quot;)&lt;br /&gt;
    elif cer == 2:&lt;br /&gt;
        g.write(f&amp;quot;{nm}\n&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        for i in range(1, np):&lt;br /&gt;
            g.write(f&amp;quot;{P[i]} &amp;quot;)&lt;br /&gt;
        g.write(f&amp;quot;{P[np]}\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Miawinator</name></author>
	</entry>
</feed>