<?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=1715_-_Inversiuni</id>
	<title>1715 - Inversiuni - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1715_-_Inversiuni"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1715_-_Inversiuni&amp;action=history"/>
	<updated>2026-05-01T08:47:33Z</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=1715_-_Inversiuni&amp;diff=9780&amp;oldid=prev</id>
		<title>Oros Ioana Diana at 07:00, 18 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1715_-_Inversiuni&amp;diff=9780&amp;oldid=prev"/>
		<updated>2024-05-18T07:00:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.universitas.ro/index.php?title=1715_-_Inversiuni&amp;amp;diff=9780&amp;amp;oldid=9288&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=1715_-_Inversiuni&amp;diff=9288&amp;oldid=prev</id>
		<title>Oros Ioana Diana: Pagină nouă: Ludwig are o permutare p=(p[1],p[2],...,p[N]) a mulțimii {1,2,..,N} și o masă pe care putea așeza numerele din permutare. Ludwig ia primul număr din permutare, adică p[1], și îl așează pe masă. Al doilea număr, p[2], îl pune fie în stânga lui p[1], fie în dreapta lui p[1]. La fiecare pas, dacă s-au așezat pe masă deja numerele p[1], p[2], …, p[i], atunci numărul p[i+1] este pus fie în stânga numerelor deja așezate, fie în dreapta lor. == Cerința ==...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1715_-_Inversiuni&amp;diff=9288&amp;oldid=prev"/>
		<updated>2024-01-08T23:27:40Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Ludwig are o permutare p=(p[1],p[2],...,p[N]) a mulțimii {1,2,..,N} și o masă pe care putea așeza numerele din permutare. Ludwig ia primul număr din permutare, adică p[1], și îl așează pe masă. Al doilea număr, p[2], îl pune fie în stânga lui p[1], fie în dreapta lui p[1]. La fiecare pas, dacă s-au așezat pe masă deja numerele p[1], p[2], …, p[i], atunci numărul p[i+1] este pus fie în stânga numerelor deja așezate, fie în dreapta lor. == Cerința ==...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ludwig are o permutare p=(p[1],p[2],...,p[N]) a mulțimii {1,2,..,N} și o masă pe care putea așeza numerele din permutare. Ludwig ia primul număr din permutare, adică p[1], și îl așează pe masă. Al doilea număr, p[2], îl pune fie în stânga lui p[1], fie în dreapta lui p[1]. La fiecare pas, dacă s-au așezat pe masă deja numerele p[1], p[2], …, p[i], atunci numărul p[i+1] este pus fie în stânga numerelor deja așezate, fie în dreapta lor.&lt;br /&gt;
== Cerința ==&lt;br /&gt;
Ajutați-l pe Ludwig să determine o modalitate de așezare a întregii permutări pe masă astfel încât în final să se obțină o nouă permutare care are un număr minim de inversiuni.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare inversiuniin.txt conține pe prima linie numărul natural N, iar pe linia a doua, separate prin câte un spațiu, numerele p[1], p[2], …, p[N].&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Fișierul de ieșire inversiuniout.txt va conține un singur număr natural reprezentând numărul minim de inversiuni 1 ≤ N ≤ 200 000&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 ≤ N ≤ 200 000&lt;br /&gt;
*O inversiune în permutare este o pereche de indici (i,j) cu i&amp;lt;j și p[i]&amp;gt;p[j]. De exemplu, permutarea p=(3,2,1,4) are ca inversiune perechea de indici (1,3) pentru că p[1]&amp;gt;p[3]; o altă inversiune este perechea de indici (2,3) pentru că p[2]&amp;gt;p[3].&lt;br /&gt;
== Exemplul 1 ==&lt;br /&gt;
; inversiuniin.txt&lt;br /&gt;
: 4&lt;br /&gt;
: 2 1 3 4&lt;br /&gt;
; inversiuniout.txt&lt;br /&gt;
: 0&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicatie == &lt;br /&gt;
Se așează elementele pe masă astfel:&lt;br /&gt;
&lt;br /&gt;
*2&lt;br /&gt;
*1 2 (1 este așezat la stânga)&lt;br /&gt;
*1 2 3 (3 este așezat la dreapta)&lt;br /&gt;
*1 2 3 4 (4 este așezat la dreapta)&lt;br /&gt;
Se obține permutarea identică, adică zero inversiuni.&lt;br /&gt;
== Exemplul 2 ==&lt;br /&gt;
; inversiuniin.txt&lt;br /&gt;
: 4&lt;br /&gt;
: 2 1 4 3&lt;br /&gt;
; inversiuniout.txt&lt;br /&gt;
: 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Explicatie == &lt;br /&gt;
Se așează elementele pe masă astfel:&lt;br /&gt;
&lt;br /&gt;
*2&lt;br /&gt;
*1 2 (1 este așezat la stânga)&lt;br /&gt;
*1 2 4 (4 este așezat la dreapta)&lt;br /&gt;
*1 2 4 3 (3 este așezat la dreapta)&lt;br /&gt;
Se obține o permutare care are o inversiune.&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
#1715 - Inversiuni&lt;br /&gt;
def minim_inversiuni(N, permutare):&lt;br /&gt;
    if N &amp;lt; 1 or N &amp;gt; 200000:&lt;br /&gt;
        print(&amp;quot;Fals&amp;quot;)&lt;br /&gt;
        exit()&lt;br /&gt;
&lt;br /&gt;
    inversiuni = 0&lt;br /&gt;
    for i in range(N):&lt;br /&gt;
        inversiuni += abs(i + 1 - permutare[i])&lt;br /&gt;
&lt;br /&gt;
    print(inversiuni)&lt;br /&gt;
&lt;br /&gt;
# Citirea datelor de intrare&lt;br /&gt;
with open(&amp;quot;inversiuniin.txt&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    N = int(f.readline())&lt;br /&gt;
    permutare = list(map(int, f.readline().split()))&lt;br /&gt;
&lt;br /&gt;
# Apelarea funcției și afișarea rezultatului&lt;br /&gt;
minim_inversiuni(N, permutare)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Oros Ioana Diana</name></author>
	</entry>
</feed>