<?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=4267_-_Perechi_Puncte</id>
	<title>4267 - Perechi Puncte - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=4267_-_Perechi_Puncte"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4267_-_Perechi_Puncte&amp;action=history"/>
	<updated>2026-05-02T09:38:02Z</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=4267_-_Perechi_Puncte&amp;diff=9797&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 14:09, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4267_-_Perechi_Puncte&amp;diff=9797&amp;oldid=prev"/>
		<updated>2024-05-18T14:09:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=4267_-_Perechi_Puncte&amp;amp;diff=9797&amp;amp;oldid=9244&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=4267_-_Perechi_Puncte&amp;diff=9244&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: Se dau n puncte în plan, nu neapărat distincte, fiecare punct fiind dat prin coordonatele sale (x, y), unde x și y sunt numere naturale. Spunem că două puncte (x, y) și (i, j) sunt simetrice dacă x = j și y = i. == Cerința == Să se determine numărul perechilor de puncte simetrice. == Date de intrare == Programul citește de la tastatură, separate prin spații, numerele naturale n, x1, y1, x2, y2, A, B, C, D, unde n este numărul de puncte, (x1, y1) sunt coordonate...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=4267_-_Perechi_Puncte&amp;diff=9244&amp;oldid=prev"/>
		<updated>2024-01-08T20:42:48Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Se dau n puncte în plan, nu neapărat distincte, fiecare punct fiind dat prin coordonatele sale (x, y), unde x și y sunt numere naturale. Spunem că două puncte (x, y) și (i, j) sunt simetrice dacă x = j și y = i. == Cerința == Să se determine numărul perechilor de puncte simetrice. == Date de intrare == Programul citește de la tastatură, separate prin spații, numerele naturale n, x1, y1, x2, y2, A, B, C, D, unde n este numărul de puncte, (x1, y1) sunt coordonate...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Se dau n puncte în plan, nu neapărat distincte, fiecare punct fiind dat prin coordonatele sale (x, y), unde x și y sunt numere naturale. Spunem că două puncte (x, y) și (i, j) sunt simetrice dacă x = j și y = i.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Să se determine numărul perechilor de puncte simetrice.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură, separate prin spații, numerele naturale n, x1, y1, x2, y2, A, B, C, D, unde n este numărul de puncte, (x1, y1) sunt coordonatele primului punct, (x2, y2) sunt coordonatele celui de-al doilea punct, iar restul punctelor (x[i], y[i]) se generează după formulele:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;x[i] = (x[i - 1] * A + x[i - 2] * B + C) % D, i = 3..n&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;y[i] = (y[i - 1] * A + y[i - 2] * B + C) % D, i = 3..n&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Programul va afișa pe ecran numărul perechilor de puncte simetrice.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;10 ≤ n ≤ 6.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;0 ≤ x1, y1, x2, y2 ≤ 30.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;2 ≤ A, B, C, D ≤ 30.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Punctele generate nu sunt neapărat distincte. Dacă de exemplu se generează de 5 ori punctul (2,9) și de 7 ori punctul (9,2), atunci se obțin 5 * 7 = 35 de perechi simetrice.&lt;br /&gt;
*Simetricul punctului (x, x) este un alt punct (x, x).&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 15 2 3 5 2 30 20 50 100&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 55&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; Intrare&lt;br /&gt;
: 8 1 1 1 1 2 1 3 10&lt;br /&gt;
; Ieșire&lt;br /&gt;
: 6&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;
#4267 - Perechi Puncte&lt;br /&gt;
def generate_coordinates(n, x1, y1, x2, y2, A, B, C, D):&lt;br /&gt;
    coordinates = [(x1, y1), (x2, y2)]&lt;br /&gt;
&lt;br /&gt;
    for i in range(3, n + 1):&lt;br /&gt;
        xi = (coordinates[i - 1][0] * A + coordinates[i - 2][0] * B + C) % D&lt;br /&gt;
        yi = (coordinates[i - 1][1] * A + coordinates[i - 2][1] * B + C) % D&lt;br /&gt;
        coordinates.append((xi, yi))&lt;br /&gt;
&lt;br /&gt;
    return coordinates&lt;br /&gt;
&lt;br /&gt;
def count_symmetric_pairs(coordinates):&lt;br /&gt;
    point_count = {}&lt;br /&gt;
    symmetric_pairs = 0&lt;br /&gt;
&lt;br /&gt;
    for point in coordinates:&lt;br /&gt;
        symmetric_pairs += point_count.get((point[1], point[0]), 0)&lt;br /&gt;
        point_count[point] = point_count.get(point, 0) + 1&lt;br /&gt;
&lt;br /&gt;
    return symmetric_pairs&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, x1, y1, x2, y2, A, B, C, D = map(int, input().split())&lt;br /&gt;
&lt;br /&gt;
    if not (10 &amp;lt;= n &amp;lt;= 6_000_000 and 0 &amp;lt;= x1 &amp;lt;= 30_000 and 0 &amp;lt;= y1 &amp;lt;= 30_000 and 0 &amp;lt;= x2 &amp;lt;= 30_000 and 0 &amp;lt;= y2 &amp;lt;= 30_000 and 2 &amp;lt;= A &amp;lt;= 30_000 and 2 &amp;lt;= B &amp;lt;= 30_000 and 2 &amp;lt;= C &amp;lt;= 30_000 and 2 &amp;lt;= D &amp;lt;= 30_000):&lt;br /&gt;
        print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
        return&lt;br /&gt;
&lt;br /&gt;
    coordinates = generate_coordinates(n, x1, y1, x2, y2, A, B, C, D)&lt;br /&gt;
    result = count_symmetric_pairs(coordinates)&lt;br /&gt;
&lt;br /&gt;
    print(result)&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>Oros Ioana Diana</name></author>
	</entry>
</feed>