奶龙农场的宝藏计算
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

        在一个遥远的奇幻世界里,有一个奶龙农场,农场主养了一群可爱的奶龙。每只奶龙都有一个“可爱值”,用一个整数表示,可爱值越大越可爱。农场主发现了一个神奇的现象:当几只奶龙聚在一起玩耍时,它们会创造出一个“快乐宝藏”,而宝藏的价值取决于这个小团体中“最可爱”的奶龙和“最不那么可爱”的奶龙的可爱值的乘积。
        现在,农场主记录了所有奶龙的可爱值,形成了一个长度为 n 的序列 A。他想知道,如果考虑所有可能的奶龙组合(即所有非空子序列),这些组合创造的“快乐宝藏”的总价值是多少, 最后的结果模 998244353

输入描述:

    输入一个正整数n,给定一个长度为n的序列
    1 \leq N \leq 2 \times 10^5
    0 \leq A_i \leq 998244352

输出描述:

    输出最后的结果,记得模998244353
示例1

输入

复制
3
2 4 3

输出

复制
63

说明

B=(2) : max(B) \times min(B)=4
B=(4) : max(B)\times min(B)=16
B=(3) : max(B)\times min(B)=9
B=(2,4) : max(B)\times min(B)=8
B=(2,3) : max(B)\times min(B)=6
B=(4,3) : max(B)\times min(B)=12
B=(2,4,3) : max(B)\times min(B)=8
示例2

输入

复制
1
10

输出

复制
100
示例3

输入

复制
7
853983 14095 543053 143209 4324 524361 45154

输出

复制
206521341