jbb

Time limit: 0.1s Memory limit: 8MB Input: jbb.in Output: jbb.out

Ana şi Bogdan joacă un nou joc – JBB (Jocul „Borcane cu Bomboane”). Pe tabla de joc sunt plasate NN borcane cu bomboane. Se ştie câte bomboane se află în fiecare borcan: în borcanul ii sunt BiB_i bomboane.
Ca de obicei, Ana începe jocul, iar apoi cei doi jucători mută alternativ. Fiind prima la mutare, Ana alege un borcan din care va lua toate bomboanele.
Pe tabla de joc sunt trasate săgeţi care unesc borcanele. Mai exact, de la fiecare borcan ii pleacă o singură săgeată către un alt borcan jj. Săgeţile indică modul în care jucătorii se deplasează pe tabla de joc. Dacă există săgeată de la borcanul ii la borcanul jj, iar un jucător a luat bomboanele din borcanul ii, atunci adversarul său e obligat să se deplaseze la borcanul jj. Dacă în borcanul jj va găsi bomboane, este obligat să le ia pe toate. Dacă borcanul jj este gol, atunci adversarul poate să aleagă un alt borcan care conţine bomboane şi continuă jocul.

Evident, scopul fiecărui jucător este să aibă, la finalul jocului (atunci când toate borcanele au fost golite) cât mai multe bomboane.

Cerinţă

Determinaţi numărul maxim de bomboane pe care Ana le-ar putea obţine respectând regulile jocului. Bineînţeles, atât Ana, cât şi Bogdan joacă optim (adică la orice pas, fiecare jucător va face cea mai bună mutare pe care poate să o facă).

Date de intrare

Fişierul de intrare jbb.in conţine pe prima linie numărul natural NN, reprezentând numărul de borcane. Pe cea de a doua linie sunt NN numere naturale nenule separate prin câte un spaţiu B1B_1, B2B_2, \dots, BNB_N reprezentând numărul de bomboane din fiecare borcan. Pe cea de a treia linie se află NN numere naturale separate prin spaţiu S1S_1, S2S_2, \dots, SNS_N, unde SiS_i reprezintă borcanul indicat de săgeata care plecă de la borcanul ii.

Date de ieşire

Fişierul de ieşire jbb.out va conţine o singură linie pe care va fi scris un număr natural reprezentând numărul maxim de bomboane pe care Ana le poate obţine.

Restricții și precizări

  • 1N10 0001 \leq N \leq 10 \ 000
  • 1Bi1 0001 \leq B_i \leq 1 \ 000, pentru orice 1iN1 \leq i \leq N
  • 1SiN1 \leq S_i \leq N, SiSjS_i \neq S_j, pentru orice 1i<jN1 \leq i < j \leq N

Exemplu

jbb.in

8
3 1 8 20 7 5 6 10
6 5 7 4 3 8 2 1

jbb.out

36

Explicație

Ana mută prima şi alege borcanul 77 şi ia 66 bomboane.
Bogdan este obligat să meargă la borcanul 22 şi ia 11 bomboane.

Ana este obligată să meargă la borcanul 55 şi ia 77 bomboane.
Bogdan e obligat să meargă la borcanul 33 şi ia 88 bomboane.

Ana e obligată să meargă la borcanul 77, dar acesta este gol, prin urmare poate alege un alt borcan plin.
Ana alege borcanul 44, de unde ia 2020 de bomboane.
Bogdan e obligat să meargă tot la borcanul 44, dar acesta este deja gol, ca urmare poate alege un alt borcan plin. Bogdan alege borcanul 88 de unde ia 1010 bomboane.

Ana este obligată să meargă la borcanul 11 de unde ia 33 bomboane.
Bogdan e obligat să meargă la borcanul 66 de unde ia 55 bomboane.

Jocul s-a încheiat, fiindcă toate borcanele au fost golite.
Ana a obţinut în total: 66 + 77 + 2020 + 33 = 3636 bomboane

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