Supersecv

Time limit: 0.3s Memory limit: 64MB Input: supersecv.in Output: supersecv.out

Avem un șir de NN numere. Cu toții știm că o subsecvenţă a şirului are forma: (si,si+1,...,sj)(s_i, s_{i+1}, . . . , s_j ) cu 1ijN1 \leq i \leq j \leq N.
Scorul unei subsecvențe este dat de suma elementelor din acea secvență.
O K-Supersecvență este o secvență formată din KK subsecvențe adiacente ale șirului inițial. Scorul unei astfel de K-Supersecvențe este dat de suma scorurilor subsecvențelor din care aceasta este alcătuită.
De execmplu, pentru șirul 1,2,31, 2, 3, avem următoarele 2-Supersecvențe:

  • 1 2\fbox 1 \ \fbox 2 (de scor 3)
  • 1 2 3\fbox 1 \ \fbox {2 3} (de scor 6)
  • 1 2 3\fbox {1 2} \ \fbox 3 (de scor 6)
  • 2 3\fbox 2 \ \fbox 3 (de scor 5)

Două K-Supersecvențe se consideră distincte dacă diferă prin cel puțin una din subsecvențele din care sunt alcătuite.
Având un șir de numere, un număr KK și un număr XX, trebuie să determinați câte K-Supersecvențe distincte cu scorul XX există în șir. Cum această cerință ar fi prea ușoară, fiecare dintre aceste K-Supersecvențe trebuie să fie formată doar din subsecvențe de lungime mai mare sau egală decât un număr ZZ dat.

Date de intrare

Fișierul de intrare va conține pe prima linie un număr întreg NN, reprezentând numărul de elemente din șir.
A doua linie conține șirul de numere.
A treia linie conține două numere, K,XK, X și ZZ, care au semnificația din enunț.

Date de ieșire

Fișierul de ieșire va conține pe prima linie un singur număr întreg, reprezentând numărul de K-Supersecvențe distincte cu scorul XX care există în șirul dat, fiind alcătuite din subsecvențe de minim ZZ elemente, modulo 999 983999 \ 983.

Restricții

  • 1KN1 000 0001 \leq K \leq N \leq 1 \ 000 \ 000
  • 1X1000 000 0001 \leq X \leq 1 000 \ 000 \ 000

Punctare

  • Pentru teste în valoare de 55 puncte, K=1,N1 000K = 1, N \leq 1 \ 000 și Z=1Z = 1.
  • Pentru alte teste în valoare de 55 puncte, K=1K = 1 și Z=1Z = 1.
  • Pentru alte teste în valoare de 55 puncte, N,K15N, K \leq 15 și Z=1Z = 1.
  • Pentru alte teste în valoare de 1515 puncte, N1 000N \leq 1 \ 000 și Z=1Z = 1.
  • Pentru alte teste în valoare de 5050 puncte, Z=1Z = 1.
  • Pentru alte teste în valoare de 2020 de puncte, nu există restricții suplimentare.

Exemplul 1

supersecv.in

5
1 1 1 2 1
2 3 1

supersecv.out

4

Exemplul 2

supersecv.in

5
1 2 3 2 1
2 8 1

supersecv.out

6

Exemplul 3

supersecv.in

5
1 2 3 2 1
2 8 2

supersecv.out

2

Explicații

În primul exemplu, supersecvențele posibile sunt:
1 1 1\fbox 1 \ \fbox {1 1}
1 1 1\fbox {1 1} \ \fbox 1
1 2\fbox 1 \ \fbox 2
2 1\fbox 2 \ \fbox 1
În al doilea exemplu, supersecvențele posibile sunt:
1 2 3 2\fbox 1 \ \fbox {2 3 2}
1 2 3 2\fbox {1 2} \ \fbox {3 2}
1 2 3 2\fbox {1 2 3} \ \fbox 2
2 3 2 1\fbox 2 \ \fbox {3 2 1}
2 3 2 1\fbox {2 3} \ \fbox {2 1}
2 3 2 1\fbox {2 3 2} \ \fbox 1
În al treilea exemplu, supersecvențele posibile sunt:
1 2 3 2\fbox {1 2} \ \fbox {3 2}
2 3 2 1\fbox {2 3} \ \fbox {2 1}

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