TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P5952
  • 题目
  • P5952【序列的欢乐赛】序列求和
    限制 : 时间限制 : - MS   空间限制 : 262144 KB
    问题描述

    nodgd在刷题时经常遇到序列求和的问题,于是他自己出了一道:

    一个长度为$n$的整数序列有$\frac{n(n+1)}{2}$个连续子序列,算出每个连续子序列中所有数的和。但是这样将得到的$\frac{n(n+1)}{2}$个结果,太多了nodgd懒得看,所以你只要告诉nodgd所有结果的平方和$\mod{1,000,000,007}\ $的结果nodgd就认为你全都算对了。

    输入格式

    第一行一个整数$n$。第二行$n$个整数$a_1,a_2,\dots,a_n$。

    输出格式

    输出一个整数,表示所有连续子序列内每个数的和的平方和$\mod{1,000,000,007}\ $的结果。

    样例输入 1

    3
    1 2 3

    样例输出 1

    84

    样例输入 2

    5
    123456 234567 345678 456789 567890

    样例输出 2

    24991030

    提示

    样例说明1
    $n=3$时有6个连续子序列,分别是[1],[2],[3],[1,2],[2,3],[1,2,3]。
    这6个子序列的和分别为1,2,3,3,5,6,所以答案是$1^2+2^2+3^2+3^2+5^2+6^2=84$。

    数据规模与约定
    对于30%的数据,\(n\le200\)
    对于60%的数据,\(n\le2000\)
    对于100%的数据,\(n\le200000\),$1\le a_i\le10^6$。


    来源  感谢nodgd