joc

Time limit: 0.3s Memory limit: 8MB Input: joc.in Output: joc.out

Jocul preferat al lui Aurel are o hartă împărțită în NN sectoare, numerotate, în ordine, de la 11 la NN. Fiecare sector ii (1iN1 \leq i \leq N) are asociate două numere naturale reprezentând un decor, decoridecor_i și un scor, scoriscor_i. Două decoruri de același tip sunt codificate prin același număr natural.

O secvență formată din lglg (lg2lg \ge 2) sectoare aflate pe poziții consecutive este numită riscantă dacă cel puțin lg2+1\frac{lg}{2}+1 dintre sectoarele acesteia au asociat același tip de decor, unde lg2\frac{lg}{2} reprezintă câtul împărțirii lui lglg la 2.

Dacă Aurel se află pe sectorul ss și are vizibilitatea vv (0vs10 \leq v \leq s-1), el va "vedea" pe hartă secvența de v+1v+1 sectoare consecutive, care se încheie cu ss: sv,sv+1,,ss-v, s-v+1, \dots, s.

La începutul jocului, Aurel este poziționat într-un anumit sector (sector de start) și are o anumită vizibilitate. La fiecare pas al jocului, Aurel, fiind poziționat într-un sector oarecare, efectuează una dintre acțiunile:

  • dacă secvența pe care o "vede" pe hartă este riscantă, Aurel scade cu 11 vizibilitatea pe care o are (astfel el speră ca secvența rezultată să nu mai fie riscantă);
  • dacă secvența pe care o "vede" pe hartă nu este riscantă, Aurel avansează, poziționându-se în sectorul următor, și crește cu 1 vizibilitatea (el se simte încurajat și merge mai departe).

Jocul se termină când el iese de pe hartă, adică se află după sectorul cu numărul NN (ultimul).

Scorul obținut este egal cu suma scorurilor sectoarelor în care el a fost poziționat la fiecare pas pe parcursul jocului (inclusiv scorul sectorului de start).

Cerință

  • Determinați numărul de moduri în care Aurel poate începe jocul, astfel încât prima secvență pe care o "vede" pe hartă să NU fie riscantă. Două moduri de a începe jocul sunt considerate diferite dacă încep pe sectoare diferite sau dacă au vizibilitatea diferită.
  • Determinați scorul obținut dacă Aurel pornește din sectorul 11 cu vizibilitatea 00.

Date de intrare

Fișierul de intrare joc.in conține pe prima linie numărul natural CC reprezentând cerința care trebuie să fie rezolvată. Pe a doua linie se află numărul natural NN reprezentând numărul de sectoare. Pe a treia linie se află NN numere naturale, reprezentând decorurile asociate sectoarelor, în ordinea numerotării acestora. Pe a patra linie se află NN numere naturale, reprezentând scorurile asociate sectoarelor, în ordinea numerotării acestora. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire joc.out conține o singură linie pe care este scris numărul determinat pentru cerința CC din fișierul de intrare.

Restricții și precizări

  • 1C21 \leq C \leq 2
  • Dacă C=1C=1, atunci 1N3 0001 \leq N \leq 3 \ 000
  • Dacă C=2C=2, atunci 1N100 0001 \leq N \leq 100 \ 000
  • 1decoriN1 \leq decor_i \leq N, pentru 1iN1 \leq i \leq N
  • 1scori1 000 0001 \leq scor_i \leq 1 \ 000 \ 000, pentru 1iN1 \leq i \leq N
# Scor Restricții
1 25 C=1,1N800C=1, 1 \leq N \leq 800
2 21 C=1,800<N3 000C=1, 800 < N \leq 3 \ 000
3 24 C=2,1N9 000C=2, 1 \leq N \leq 9 \ 000
4 30 C=2,9 000<N100 000C=2, 9 \ 000 < N \leq 100 \ 000

Exemplul 1

joc.in

1
5
1 1 2 1 3
2 3 1 1 5

joc.out

10

Explicație

Se notează cu stst sectorul de start și cu vv vizibilitatea; există 1010 moduri în care Aurel poate începe jocul astfel încât prima secvență văzută să nu fie riscantă:

  • st=1st=1, v=0v=0 (secvența 11)
  • st=2st=2, v=0v=0 (secvența 22)
  • st=3st=3, v=0v=0 (secvența 33)
  • st=4st=4, v=0v=0 (secvența 44)
  • st=5st=5, v=0v=0 (secvența 55)
  • st=3st=3, v=1v=1 (secvența 2,32,3)
  • st=4st=4, v=1v=1 (secvența 3,43,4)
  • st=5st=5, v=1v=1 (secvența 4,54,5)
  • st=5st=5, v=2v=2 (secvența 3,4,53,4,5)
  • st=5st=5, v=3v=3 (secvența 2,3,4,52,3,4,5)

Exemplul 2

joc.in

2
5
1 1 2 1 3
2 3 1 1 5

joc.out

16

Explicație

Aurel pornește din sectorul 11 cu vizibilitate v=0v=0. Scorul total este inițial scor1=2scor_1=2.

  • El vede doar sectorul 11, iar secvența văzută nu este riscantă, deci avansează în sectorul 22 și crește vv cu 11. La scorul total se adună scor2=3scor_2=3.
  • Secvența văzută, formată din sectoarele 1,21,2, este riscantă, deci scade vv cu 11. Aurel este acum în sectorul 22, cu v=0v=0. La scorul total se adună scor2=3scor_2=3.
  • Secvența curentă văzută nu este riscantă, deci avansează în sectorul 33 și crește vv cu 11. La scorul total se adună scor3=1scor_3=1.
  • Secvența văzută 2,32,3 nu este riscantă, deci avansează în sectorul 44 și crește vv cu 11. La scorul total se adună scor4=1scor_4=1.
  • Secvența văzută, formată din sectoarele 2,3,42,3,4 este riscantă, deci scade vv cu 11. La scorul total se adună scor4=1scor_4=1.
  • Secvența văzută 3,43,4 nu este riscantă, deci avansează în sectorul 55 și crește vv cu 11. La scorul total se adună scor5=5scor_5=5.
  • Secvența văzută formată din sectoarele 3,4,53,4,5 nu este riscantă, deci avansează și se poziționează după ultimul sector, terminând jocul. Scorul total obținut este 2+3+3+1+1+1+5=162+3+3+1+1+1+5=16.

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