#YDRS004C. 反套路、反直觉和反坦克装甲炮

反套路、反直觉和反坦克装甲炮

请说出 yummy 和 tank 的共同点 (4 分)

题目描述

一个序列的子序列为序列中去掉部分数字(可以是 00 个或全部去掉),保持其他数字的前后顺序得到的序列。

给出长 nn 的序列 aa,对于其所有看起来不同的子序列 ss,计算有多少种方式选出 ss(记作 fsf_s),并求所有 fsf_s 的平方和。

两种选出方式不同,当且仅当一种方式选择了 aka_k,另一种没有选择。

输入格式

输入的第一行包括一个正整数 nn 表示序列长度。

第二行有 nn 个整数表示这个序列。

输出格式

一行一个整数,表示你的答案。

如果你的输出和答案不相同,但恰好是正确答案除以 998244353998244353 的余数,你可以获得该测试点 60%60\% 的分数。

样例 #1

样例输入 #1

3
1 1 4

样例输出 #1

12

提示

【样例解释】

  • [][]11 种选法。
  • [1][1]22 种选法:a1a_1a2a_2
  • [1,1][1,1]11 种选法:a1,a2a_1,a_2
  • [1,1,4][1,1,4]11 种选法:a1,a2,a3a_1,a_2,a_3
  • [1,4][1,4]22 种选法:a1,a3a_1,a_3a2,a3a_2,a_3
  • [4][4]11 种选法:a3a_3

因此,你应当输出 1+4+1+1+4+1=121+4+1+1+4+1=12

【数据规模与约定】

提示:n60n\le 60 时,答案在 __int128 范围内。

Testcases nn\le 特殊性质
131\sim 3 1212
474\sim 7 1717
898\sim 9 6060
101110\sim 11 300300
121312\sim 13 10001000
1414 20002000 aia_i 全不相等
151615\sim 16 aia_i 全相等
172017\sim 20

对于 100%100\% 数据,保证 1n20001\le n\le 20001ai1091\le a_i\le 10^9