<?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=1656_-_Unu_Zero</id>
	<title>1656 - Unu Zero - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1656_-_Unu_Zero"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1656_-_Unu_Zero&amp;action=history"/>
	<updated>2026-05-01T03:41:08Z</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=1656_-_Unu_Zero&amp;diff=9022&amp;oldid=prev</id>
		<title>Corjuc Eunice: Pagină nouă: Se consideră un şir format din &lt;code&gt;N+2&lt;/code&gt; cifre binare, care conţine cel puţin o cifră &lt;code&gt;1&lt;/code&gt; şi cel puţin trei cifre &lt;code&gt;0&lt;/code&gt;; prima şi ultima cifră a şirului sunt &lt;code&gt;0&lt;/code&gt;.  Numim &lt;code&gt;1-secvenţă&lt;/code&gt; o succesiune formată numai din cifre &lt;code&gt;1&lt;/code&gt;, aflate pe poziţii consecutive în acest şir, delimitată de câte o cifră &lt;code&gt;0&lt;/code&gt;.  Corina construieşte un astfel de şir, în care numărul de cifre &lt;code&gt;1&lt;/code&gt; ale fi...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1656_-_Unu_Zero&amp;diff=9022&amp;oldid=prev"/>
		<updated>2024-01-04T20:53:57Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se consideră un şir format din &amp;lt;code&amp;gt;N+2&amp;lt;/code&amp;gt; cifre binare, care conţine cel puţin o cifră &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; şi cel puţin trei cifre &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;; prima şi ultima cifră a şirului sunt &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.  Numim &amp;lt;code&amp;gt;1-secvenţă&amp;lt;/code&amp;gt; o succesiune formată numai din cifre &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, aflate pe poziţii consecutive în acest şir, delimitată de câte o cifră &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.  Corina construieşte un astfel de şir, în care numărul de cifre &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; ale fi...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se consideră un şir format din &amp;lt;code&amp;gt;N+2&amp;lt;/code&amp;gt; cifre binare, care conţine cel puţin o cifră &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; şi cel puţin trei cifre &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;; prima şi ultima cifră a şirului sunt &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Numim &amp;lt;code&amp;gt;1-secvenţă&amp;lt;/code&amp;gt; o succesiune formată numai din cifre &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, aflate pe poziţii consecutive în acest şir, delimitată de câte o cifră &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Corina construieşte un astfel de şir, în care numărul de cifre &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; ale fiecărei &amp;lt;code&amp;gt;1-secvenţe&amp;lt;/code&amp;gt; să fie cuprins între două numere naturale date, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;p ≤ q&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
= Cerința =&lt;br /&gt;
Scrieţi un program care să determine un număr natural &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt;, egal cu restul împărţirii la &amp;lt;code&amp;gt;666013&amp;lt;/code&amp;gt; a numărului de şiruri distincte, de tipul celui construit de Corina.&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 numărul natural &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;, iar pe cea de a doua linie numerele naturale &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; şi &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; ( &amp;lt;code&amp;gt;p ≤ q&amp;lt;/code&amp;gt; ), separate printr-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 numărul natural &amp;lt;code&amp;gt;K&amp;lt;/code&amp;gt; cerut.&lt;br /&gt;
&lt;br /&gt;
= Restricții și precizări =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;1 ≤ p ≤ q &amp;lt; N &amp;lt; 1.000.000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
&lt;br /&gt;
2 3&lt;br /&gt;
&lt;br /&gt;
output.txt:&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
Explicație:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0000110&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0001100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0001110&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0011000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0011100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0110000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0110110&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0111000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
input.txt:&lt;br /&gt;
&lt;br /&gt;
999999999&lt;br /&gt;
&lt;br /&gt;
2 3&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
Constrangeri neindeplinite&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;
mod = 666013&lt;br /&gt;
&lt;br /&gt;
def ver(n, p, q):&lt;br /&gt;
    if not(1&amp;lt;=n&amp;lt;=1000000):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not(1&amp;lt;=p&amp;lt;=1000000):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not(1&amp;lt;=q&amp;lt;=1000000):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not(p&amp;gt;=q):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
    if not(q&amp;gt;=n):&lt;br /&gt;
        print(&amp;quot;Constrangeri neindeplinite&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    with open(&amp;quot;input.txt&amp;quot;, &amp;quot;r&amp;quot;) as in_file, open(&amp;quot;output.txt&amp;quot;, &amp;quot;w&amp;quot;) as out_file:&lt;br /&gt;
        &lt;br /&gt;
        n=int(in_file.readline().strip())&lt;br /&gt;
        a, b = map(int, in_file.readline().split())&lt;br /&gt;
&lt;br /&gt;
        ver(n,a, b)&lt;br /&gt;
        &lt;br /&gt;
        z = [0] * (n + 1)&lt;br /&gt;
        s = [0] * (n + 1)&lt;br /&gt;
        u = [0] * (n + 1)&lt;br /&gt;
&lt;br /&gt;
        z[0] = 1&lt;br /&gt;
        s[0] = 1&lt;br /&gt;
&lt;br /&gt;
        for i in range(1, n + 1):&lt;br /&gt;
            z[i] = z[i - 1] + u[i - 1]  # daca punem 0&lt;br /&gt;
            z[i] %= mod&lt;br /&gt;
&lt;br /&gt;
            if i - a &amp;gt;= 0:&lt;br /&gt;
                if i - b - 1 &amp;gt;= 0:&lt;br /&gt;
                    u[i] = s[i - a] - s[i - b - 1]&lt;br /&gt;
                else:&lt;br /&gt;
                    u[i] = s[i - a]&lt;br /&gt;
&lt;br /&gt;
            if u[i] &amp;lt; 0:&lt;br /&gt;
                u[i] += mod&lt;br /&gt;
            u[i] %= mod&lt;br /&gt;
&lt;br /&gt;
            s[i] = s[i - 1] + z[i]&lt;br /&gt;
            s[i] %= mod&lt;br /&gt;
&lt;br /&gt;
        result = (z[n] + u[n] - 1 + (z[n] + u[n] - 1 &amp;lt; 0) * mod) % mod&lt;br /&gt;
        out_file.write(str(result) + &amp;#039;\n&amp;#039;)&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>Corjuc Eunice</name></author>
	</entry>
</feed>