<?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=1683_-_xor1</id>
	<title>1683 - xor1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1683_-_xor1"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1683_-_xor1&amp;action=history"/>
	<updated>2026-05-01T07:45:10Z</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=1683_-_xor1&amp;diff=9813&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 16:48, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1683_-_xor1&amp;diff=9813&amp;oldid=prev"/>
		<updated>2024-05-18T16:48:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1683_-_xor1&amp;amp;diff=9813&amp;amp;oldid=9227&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=1683_-_xor1&amp;diff=9227&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: Se consideră o matrice cu un număr infinit de linii și coloane indexate începând cu 0. Pe prima linie matricea conține șirul numerelor naturale (0, 1, 2, 3 …). Pe fiecare linie începând cu linia a doua pe poziția j matricea conține suma xor a elementelor situate pe linia anterioara de la poziția 0 până la poziția j. == Cerința == Se cere să se răspundă la q întrebări de forma “Pentru i și j date, să se determine numărul situat pe linia i coloana j...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1683_-_xor1&amp;diff=9227&amp;oldid=prev"/>
		<updated>2024-01-08T18:33:31Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se consideră o matrice cu un număr infinit de linii și coloane indexate începând cu 0. Pe prima linie matricea conține șirul numerelor naturale (0, 1, 2, 3 …). Pe fiecare linie începând cu linia a doua pe poziția j matricea conține suma xor a elementelor situate pe linia anterioara de la poziția 0 până la poziția j. == Cerința == Se cere să se răspundă la q întrebări de forma “Pentru i și j date, să se determine numărul situat pe linia i coloana j...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se consideră o matrice cu un număr infinit de linii și coloane indexate începând cu 0.&lt;br /&gt;
Pe prima linie matricea conține șirul numerelor naturale (0, 1, 2, 3 …).&lt;br /&gt;
Pe fiecare linie începând cu linia a doua pe poziția j matricea conține suma xor a elementelor situate pe linia anterioara de la poziția 0 până la poziția j.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Se cere să se răspundă la q întrebări de forma “Pentru i și j date, să se determine numărul situat pe linia i coloana j a matricei”. Pentru a genera cele q întrebări vor fi cunoscute următoarele valori: i1,j1,a,b,m.&lt;br /&gt;
i1,j1 reprezintă valorile pentru prima întrebare. Următoarele întrebări ik, jk vor fi generate una din alta folosind următoarea regulă:&lt;br /&gt;
ik=(a∗ik−1+b) mod m&lt;br /&gt;
jk=(a∗jk−1+b) mod m&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare xor1in.txt conține pe prima linie numerele naturale q,i1,j1,a,b,m separate prin câte un spaţiu.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire xor1out.txt va conține q linii. Pe linia k se va afișa elementul situat pe linia ik coloana jk a matricei.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*Pentru 10% dintre teste &amp;#039;&amp;#039;&amp;#039;1 ≤ q ≤ 100, 1 ≤ m ≤ 100&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Pentru alte 10% dintre teste &amp;#039;&amp;#039;&amp;#039;1 ≤ q ≤ 100000, 1 ≤ m ≤ 1000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Pentru alte 30% dintre teste &amp;#039;&amp;#039;&amp;#039;1 ≤ q ≤ 50, 1 ≤ m ≤ 30000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Pentru alte 50% dintre teste &amp;#039;&amp;#039;&amp;#039;1 ≤ q ≤ 100000, 1 ≤ m ≤ 108&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;0≤i1,j1&amp;lt;m&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;1 ≤ a,b ≤ 9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; xor1in.txt&lt;br /&gt;
: 4 2 3 1 1 5&lt;br /&gt;
; xor1out.txt&lt;br /&gt;
:2&lt;br /&gt;
:7&lt;br /&gt;
:0&lt;br /&gt;
:1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; xor1in.txt&lt;br /&gt;
: 5 2 3 1 1 5&lt;br /&gt;
; xor1.out.txt&lt;br /&gt;
:1&lt;br /&gt;
:1&lt;br /&gt;
:1&lt;br /&gt;
:1&lt;br /&gt;
:1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1683 - xor1&lt;br /&gt;
def generate_matrix_element(i, j, a, b, m):&lt;br /&gt;
    row = [(a * k + b) % m for k in range(j + 1)]&lt;br /&gt;
    return row&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Deschideți fișierul xor1in.txt pentru citire&lt;br /&gt;
    with open(&amp;quot;xor1in.txt&amp;quot;, &amp;quot;r&amp;quot;) as file:&lt;br /&gt;
        # Citiți valorile q, i1, j1, a, b, m din fișier&lt;br /&gt;
        q, i1, j1, a, b, m = map(int, file.readline().split())&lt;br /&gt;
&lt;br /&gt;
    for _ in range(q):&lt;br /&gt;
        current_row = generate_matrix_element(i1, j1, a, b, m)&lt;br /&gt;
        result = current_row[j1]&lt;br /&gt;
        # Utilizați result într-un mod necunoscut sau salvați-l într-un loc&lt;br /&gt;
        print(result)&lt;br /&gt;
        i1 = (a * i1 + b) % m&lt;br /&gt;
        j1 = (a * j1 + b) % m&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicatie ==&lt;br /&gt;
Avem q=4 întrebări.&lt;br /&gt;
Pentru i1=2, j1=3, a=1, b=1, m=5 se obțin întrebările: (2,3), (3,4), (4,0), (0,1)&lt;br /&gt;
Matricea este:&lt;br /&gt;
0 1 2 3 4 5 6 …&lt;br /&gt;
0 1 3 0 4 1 7 …&lt;br /&gt;
0 1 2 2 6 7 0 …&lt;br /&gt;
0 1 3 1 7 0 0 …&lt;br /&gt;
0 1 2 3 4 4 4 …&lt;br /&gt;
…&lt;br /&gt;
Se observă că pe pozițiile corespunzătoare întrebărilor avem valorile 2, 7, 0 și 1.&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>