<?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=1781_-_Intersectii</id>
	<title>1781 - Intersectii - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1781_-_Intersectii"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1781_-_Intersectii&amp;action=history"/>
	<updated>2026-06-17T09:47:46Z</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=1781_-_Intersectii&amp;diff=10038&amp;oldid=prev</id>
		<title>AjM: Pagină nouă: == Enunt == Dreptunghiul ABCD are laturile de lungimi w şi h, numere naturale pare. Acest dreptunghi este desenat pe o foaie de matematică şi este descompus în w ∙ h pătrate de latură 1. Vârfurile A, B, C şi D sunt plasate în colţurile unor pătrate de latură 1. Se alege un punct P din interiorul dreptunghiului ABCD, situat în colţul unui pătrat de latură 1 şi se uneşte prin segmente de dreaptă cu cele patru colţuri ale dreptunghiului. Unele segmente inte...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1781_-_Intersectii&amp;diff=10038&amp;oldid=prev"/>
		<updated>2024-06-03T17:20:52Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Enunt == Dreptunghiul ABCD are laturile de lungimi w şi h, numere naturale pare. Acest dreptunghi este desenat pe o foaie de matematică şi este descompus în w ∙ h pătrate de latură 1. Vârfurile A, B, C şi D sunt plasate în colţurile unor pătrate de latură 1. Se alege un punct P din interiorul dreptunghiului ABCD, situat în colţul unui pătrat de latură 1 şi se uneşte prin segmente de dreaptă cu cele patru colţuri ale dreptunghiului. Unele segmente inte...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Enunt ==&lt;br /&gt;
Dreptunghiul ABCD are laturile de lungimi w şi h, numere naturale pare. Acest dreptunghi este desenat pe o foaie de matematică şi este descompus în w ∙ h pătrate de latură 1. Vârfurile A, B, C şi D sunt plasate în colţurile unor pătrate de latură 1. Se alege un punct P din interiorul dreptunghiului ABCD, situat în colţul unui pătrat de latură 1 şi se uneşte prin segmente de dreaptă cu cele patru colţuri ale dreptunghiului. Unele segmente intersectează pătrate de latură 1 în exact două puncte distincte, altele într-un singur punct.&lt;br /&gt;
Numim pătrat 2-intersectat, un pătrat de latură 1 intersectat de un segment în exact 2 puncte distincte.&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau două numere naturale w şi h reprezentând lungimile laturilor dreptunghiului ABCD, un număr natural n şi n numere naturale x1, x2,… xn cu propietatea din enunt. Punctul P se plasează, pe rând, în toate punctele interioare dreptunghiului ABCD care sunt colţuri ale unor pătrate de latură 1. Pentru fiecare valoare x[i] (1 ≤ i ≤ n), determinaţi numărul de segmente distincte care trec prin exact x[i] pătrate 2-intersectate.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fişierul de intrare intersectii.in conţine pe prima linie trei numere naturale w, h (reprezentând dimensiunile dreptunghiului) şi n. Următoarele n linii conţin câte un număr natural x[i] cu semnificaţia de mai sus.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Fişierul de ieşire intersectii.out va conţine n linii. Pe fiecare linie i va fi scris numărul de segmente care trec prin exact x[i] pătrate 2-intersectate, obţinute după plasarea punctului P în fiecare colţ al unui pătrat de latură 1 din interiorul dreptunghiului ABCD.&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* 2 ≤ w , h ≤ 2000 numere naturale pare;&lt;br /&gt;
* 2 ≤ n ≤ 100000;&lt;br /&gt;
* punctul P se alege doar în interiorul dreptunghiului;&lt;br /&gt;
* pentru 40% din teste 2 ≤ w, n, h ≤ 500.&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; intersectii.in&lt;br /&gt;
 4 6 2&lt;br /&gt;
3&lt;br /&gt;
5&lt;br /&gt;
; intersectii.out&lt;br /&gt;
 12&lt;br /&gt;
4&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
Se pot obţine 12 segmente care trec prin exact 3 pătrate 2-intersectate şi 4 segmente care trec prin exact 3 pătrate 2-intersectate.&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def count_intersected_squares(w, h):&lt;br /&gt;
    # Calculăm numărul de pătrate 2-intersectate pentru fiecare punct P&lt;br /&gt;
    return (w - 1) * (h - 1) * 2&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    # Citim datele de intrare din fișier&lt;br /&gt;
    with open(&amp;quot;intersectii.in&amp;quot;, &amp;quot;r&amp;quot;) as fin:&lt;br /&gt;
        w, h, n = map(int, fin.readline().split())&lt;br /&gt;
        x_values = [int(fin.readline()) for _ in range(n)]&lt;br /&gt;
&lt;br /&gt;
    # Calculăm numărul de pătrate 2-intersectate pentru dreptunghi&lt;br /&gt;
    num_intersected_squares = count_intersected_squares(w, h)&lt;br /&gt;
&lt;br /&gt;
    # Calculăm numărul de segmente care trec prin fiecare x[i] pătrate 2-intersectate&lt;br /&gt;
    results = [x * num_intersected_squares for x in x_values]&lt;br /&gt;
&lt;br /&gt;
    # Scriem rezultatele în fișierul de ieșire&lt;br /&gt;
    with open(&amp;quot;intersectii.out&amp;quot;, &amp;quot;w&amp;quot;) as fout:&lt;br /&gt;
        fout.write(&amp;quot;\n&amp;quot;.join(map(str, results)) + &amp;quot;\n&amp;quot;)&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>AjM</name></author>
	</entry>
</feed>