CF1542D Priority Queue
Description
You are given a sequence $ A $ , where its elements are either in the form + x or -, where $ x $ is an integer.
For such a sequence $ S $ where its elements are either in the form + x or -, define $ f(S) $ as follows:
- iterate through $ S $ 's elements from the first one to the last one, and maintain a multiset $ T $ as you iterate through it.
- for each element, if it's in the form + x, add $ x $ to $ T $ ; otherwise, erase the smallest element from $ T $ (if $ T $ is empty, do nothing).
- after iterating through all $ S $ 's elements, compute the sum of all elements in $ T $ . $ f(S) $ is defined as the sum.
The sequence $ b $ is a subsequence of the sequence $ a $ if $ b $ can be derived from $ a $ by removing zero or more elements without changing the order of the remaining elements. For all $ A $ 's subsequences $ B $ , compute the sum of $ f(B) $ , modulo $ 998\,244\,353 $ .
Input Format
The first line contains an integer $ n $ ( $ 1\leq n\leq 500 $ ) — the length of $ A $ .
Each of the next $ n $ lines begins with an operator + or -. If the operator is +, then it's followed by an integer $ x $ ( $ 1\le x
Output Format
Print one integer, which is the answer to the problem, modulo $ 998\,244\,353 $ .
Explanation/Hint
In the first example, the following are all possible pairs of $ B $ and $ f(B) $ :
- $ B= $ {}, $ f(B)=0 $ .
- $ B= $ {-}, $ f(B)=0 $ .
- $ B= $ {+ 1, -}, $ f(B)=0 $ .
- $ B= $ {-, + 1, -}, $ f(B)=0 $ .
- $ B= $ {+ 2, -}, $ f(B)=0 $ .
- $ B= $ {-, + 2, -}, $ f(B)=0 $ .
- $ B= $ {-}, $ f(B)=0 $ .
- $ B= $ {-, -}, $ f(B)=0 $ .
- $ B= $ {+ 1, + 2}, $ f(B)=3 $ .
- $ B= $ {+ 1, + 2, -}, $ f(B)=2 $ .
- $ B= $ {-, + 1, + 2}, $ f(B)=3 $ .
- $ B= $ {-, + 1, + 2, -}, $ f(B)=2 $ .
- $ B= $ {-, + 1}, $ f(B)=1 $ .
- $ B= $ {+ 1}, $ f(B)=1 $ .
- $ B= $ {-, + 2}, $ f(B)=2 $ .
- $ B= $ {+ 2}, $ f(B)=2 $ .
The sum of these values is $ 16 $ .