Fiind dat un șir format din numere întregi , definim o tăietură în poziția ca fiind o subsecvență care conține elementul de pe poziția . Formal, tăieturile în poziția sunt de forma pentru orice , și orice , .
Valoarea unei tăieturi este suma tuturor elementelor care fac parte din tăietura respectivă.
Definim funcția ca fiind numărul de tăieturi în poziția care au valoarea .
Cerinţă
Ioana, fiind foarte curioasă din fire, dar și foarte fascinată de această funcție numită , este foarte interesată în a afla rezultatul pentru , unde .
Date de intrare
Fişierul de intrare taietura.in
conţine pe prima linie un număr natural , reprezentând numărul de elemente din șirul . Următoarea linie va conține exact valori întregi despărțite prin câte un spațiu, și anume elementele șirului .
Date de ieșire
Fişierul de ieşire taietura.out
va conţine pe prima linie numere naturale separate prin câte un spațiu, și anume valorile funcției , unde .
Restricții și precizări
- ;
- Orice element al șirului este mai mic sau egal în valoare absolută cu ;
- Pentru teste în valoare de de puncte ;
- Pentru teste în valoare de încă de puncte .
Exemplul 1
taietura.in
3
0 1 0
taietura.out
1 0 1
Explicație
Rezultatul pentru este deoarece există o singură tăietură, și anume care are valoarea . Pentru rezultatul este deoarece nu există nicio tăietură aplicată pe poziția care să aibă valoarea . Rezultatul pentru este deoarece există o unică tăietură, și anume care are valoarea .
Exemplul 2
taietura.in
6
2 -2 0 0 1 -1
taietura.out
4 4 6 6 4 4
Explicație
De exemplu, rezultatul pentru este deoarece tăieturile formate din subsecvențele , , , au valoarea .