您的位置:首页 > 产品设计 > UI/UE

The Heaviest Non-decreasing Subsequence Problem

2017-09-24 21:37 495 查看
Let SSS
be a sequence of integers s1s_{1}s​1​​,
s2s_{2}s​2​​,
.........,
sns_{n}s​n​​
Each integer is is associated with a weight by the following rules:

(1) If is is negative, then its weight is 000.

(2) If is is greater than or equal to 100001000010000,
then its weight is 555.
Furthermore, the real integer value of sis_{i}s​i​​
is si−10000s_{i}-10000s​i​​−10000
. For example, if sis_{i}s​i​​
is 101011010110101,
then is is reset to 101101101
and its weight is 555.

(3) Otherwise, its weight is 111.

A non-decreasing subsequence of SSS
is a subsequence si1s_{i1}s​i1​​,
si2s_{i2}s​i2​​,
.........,
siks_{ik}s​ik​​,
with i1<i2 ... <iki_{1}<i_{2}\ ...\ <i_{k}i​1​​<i​2​​ ... <i​k​​,
such that, for all 1≤j<k1 \leq j<k1≤j<k,
we have sij<sij+1s_{ij}<s_{ij+1}s​ij​​<s​ij+1​​.

A heaviest non-decreasing subsequence of SSS
is a non-decreasing subsequence with the maximum sum of weights.

Write a program that reads a sequence of integers, and outputs the weight of its

heaviest non-decreasing subsequence. For example, given the following sequence:

808080
757575
737373
939393
737373
737373
101011010110101
979797
−1-1−1
−1-1−1
114114114
−1-1−1
101131011310113
118118118

The heaviest non-decreasing subsequence of the sequence is
<73,73,73,101,113,118><73, 73, 73, 101, 113, 118><73,73,73,101,113,118>
with the total weight being 1+1+1+5+5+1=141+1+1+5+5+1 = 141+1+1+5+5+1=14.
Therefore, your program should output 141414
in this example.

We guarantee that the length of the sequence does not exceed
2∗1052*10^{5}2∗10​5​​

Input Format

A list of integers separated by blanks:s1s_{1}s​1​​,
s2s_{2}s​2​​,.........,sns_{n}s​n​​

Output Format

A positive integer that is the weight of the heaviest non-decreasing subsequence.

样例输入

80 75 73 93 73 73 10101 97 -1 -1 114 -1 10113 118


样例输出

14


待解决

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐