Editorial for COCI '07 Contest 1 #5 Srednji
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
One obvious observation is that if the median of subsequence is then the subsequence contains .
For a subsequence , we define a function as the difference of elements greater than and elements smaller than . Thus is the median of if and only if contains and .
Furthermore, if we split into subsequences – part that is left of and – part that is right of , then has median if .
This leads to the following algorithm:
For each subsequence ending with we calculate the delta function and store the number of subsequences having delta value of in .
For each subsequence starting with we calculate the delta function and store the number of subsequences having delta value of in .
To obtain the solution for each value from , we sum .
Comments