sortari

Time limit: 0.1s Memory limit: 6MB Input: sortari.in Output: sortari.out

Balaurului Arhirel nu îi plac prea mult şirurile care nu sunt ordonate. Din acest motiv, nu poate să suporte permutările de NN elemente, aşa că se decide să le sorteze şi pentru asta inventează o metodă proprie de sortare.

El ia iniţial un şir SS care reprezintă o permutare de ordin NN. Caută în şirul SS cel mai mic (minmin) şi cel mai mare element (maxmax). Să considerăm că minmin se află în şirul SS pe poziţia pminp_{min}, iar maxmax pe poziţia pmaxp_{max}. Să notăm cu xx minimul dintre pminp_{min} şi pmaxp_{max}, iar cu yy maximul dintre pminp_{min} şi pmaxp_{max}. Şirul SS a fost astfel partiţionat în alte trei şiruri, S1S_1, S2S_2, S3S_3 care pot avea fiecare zero elemente, un element sau mai multe elemente. Şirul S1S_1 începe la prima poziţie din şir şi se termină la poziţia x1x-1. Şirul S2S_2 începe la poziţia x+1x+1 şi se termină la poziţia y1y-1. Şirul S3S_3 începe la poziţia y+1y+1 şi se termină la ultima poziţie din şir.

Balaurul Arhirel mută valoarea min la capătul din stânga al lui SS, iar valoarea maxmax la capătul din dreapta al şirului SS şi reia sortarea pentru fiecare din şirurile S1S_1, S2S_2, S3S_3.

De exemplu să considerăm N=6N = 6 şi şirul SS = (3 4 2 1 6 53 \ 4 \ 2 \ 1 \ 6 \ 5). La primul pas, min=1min = 1 şi max=6max = 6. Deci S1S_1 = (3 4 23 \ 4 \ 2); S2S_2 = (); S3S_3 = (55). Se mută minmin şi maxmax la capetele şirului şi se obţine SS = (1 3 4 2 5 61 \ 3 \ 4 \ 2 \ 5 \ 6) şi se sortează în acelaşi mod S1S_1, S2S_2 şi S3S_3. S2S_2 şi S3S_3 au 00, respectiv 11 element, deci sunt deja sortate. Pentru S1S_1, se găseşte min=2min = 2 şi max=4max = 4 şi vom avea şirurile (33); (); (). Se mută minmin şi maxmax la capete şi se obţine S1S_1 = (2 3 42 \ 3 \ 4). În final, vom avea şirul SS = (1 2 3 4 5 61 \ 2 \ 3 \ 4 \ 5 \ 6). Evident, această metodă nu va funcţiona întotdeauna pentru sortarea unei permutări.

Spre exemplu, pentru şirul SS = (3 4 1 6 5 23 \ 4 \ 1 \ 6 \ 5 \ 2), se găseşte min=1min = 1 şi max=6max = 6, iar S1S_1 = (3 4)3 \ 4), S2S_2 = (), S3S_3 = (5 25 \ 2). Se mută minmin şi maxmax la capetele lui SS : SS = (1 3 4 5 2 61 \ 3 \ 4 \ 5 \ 2 \ 6) şi se procedează la sortarea pe rând a şirurilor S1S_1, S2S_2, S3S_3. S1S_1 este sortat, S2S_2 nu are elemente, iar S3S_3 va deveni S3S_3 = (2 52 \ 5). În final, SS = (1 3 4 2 5 61 \ 3 \ 4 \ 2 \ 5 \ 6).

Cerinţă

Ajutaţi-l pe Balaurul Arhirel să afle câte dintre permutările de NN elemente pot fi sortate prin metoda sa.

Date de intrare

Fişierul sortari.in conţine o singură linie pe care se află numărul NN.

Date de ieşire

Fişierul sortari.out va conţine o singură linie pe care se află numărul de permutări de ordin NN ce pot fi sortate prin metoda balaurului modulo 19 57319 \ 573 (restul împărţirii numărului de permutări la 19 57319 \ 573).

Restricții și precizări

  • 0<N<2010 < N < 201;

Exemplul 1

sortari.in

4

sortari.out

18

Explicație

În cazul permutărilor de câte 44 elemente, şirurile (1 3 4 21 \ 3 \ 4 \ 2); (3 1 2 43 \ 1 \ 2 \ 4); (3 1 4 23 \ 1 \ 4 \ 2); (3 4 1 23 \ 4 \ 1 \ 2); (3 4 2 13 \ 4 \ 2 \ 1); (4 3 1 24 \ 3 \ 1 \ 2) nu vor putea fi sortate crescător. Celelalte 246=1824 - 6 = 18 permutări pot fi sortate crescător.
De exemplu, pentru şirul (1 3 4 21 \ 3 \ 4 \ 2), după găsirea min=1min = 1, max=4max = 4, se obţin şirurile: S1=()S_1 = (); S2=(3)S_2 = (3); S3=(2)S_3 = (2), care, având câte un element sunt sortate. Astfel, după mutarea la capete a lui minmin şi maxmax vom avea: (1 3 2 41 \ 3 \ 2 \ 4)

Log in or sign up to be able to send submissions!