Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Jasio ma ciąg arytmetyczny nieujemnych liczb całkowitych. A w zasadzie to miał, bo wstrętny Adrian pozamieniał niektóre elementy tego ciągu na inne. Jasio chciałby teraz naprawić swój ciąg zamieniając te elementy z powrotem. Niestety nie wie, które elementy należy zamienić. Pomóż mu!
Dla przypomnienia: ciąg arytmetyczny to taki ciąg, w którym różnica między każdymi kolejnymi elementami jest jednakowa. Na przykład ciąg (3, 5, 7) jest arytmetryczny, tak samo jak (10, 7, 4, 1) oraz (5, 5, 5). Ale już ciąg (1, 7, 4) nie jest arytmetyczny, tak samo jak (2, 5, 9, 12).
Napisz program, który: wczyta ciąg po modyfikacjach Adriana, wyznaczy najmniejszą liczbę operacji jakie należy wykonać, aby odzyskać ciąg Jasia i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna dodatnia liczba całkowita N, określająca liczbę elementów ciągu Jasia. W drugim (ostatnim) wierszu wejścia znajduje się ów ciąg N dodatnich liczb całkowitych Ai, pooddzielanych pojedynczymi odstępami. Jest to ciąg już po modyfikacjach Adriana.
Wyjście
W pierwszym (jedynym) wierszu wyjścia należy wypisać jedną nieujemną liczbę całkowitą – najmniejszą liczbę elementów jakie należy zamienić na inne, aby odzyskać ciąg arytmetyczny Jasia.
Jeśli ta liczba jest większa niż $\frac{N}{2}$, zamiast tego należy wypisać
tylko jedno słowo NIE
. Jasio wtedy zamiast zmieniać bardzo
wiele elementów po prostu napisze swój ciąg od nowa.
Uwaga
Elementy ciągu Jasia po naprawieniu ciągu muszą być z przedziału [0,1018].
Ograniczenia
1 ≤ N ≤ 1 000 000, 0 ≤ Ai ≤ 1018.
Przykład
Input | Output | |
|
|
Input | Output | |
|
|