记录编号 588986 评测结果 AAAAAAAAAA
题目名称 大力枚举 最终得分 100
用户昵称 Gravatarflyfree 是否通过 通过
代码语言 C++ 运行时间 0.061 s
提交时间 2024-07-02 14:42:55 内存使用 2.06 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define ll long long
#define MAXN 100005
ll n,ans;
ll a[MAXN],s1[MAXN],s2[MAXN],s3[MAXN],b[MAXN],c[MAXN]; 
int main(){
    freopen("enumerate.in","r",stdin);
    freopen("enumerate.out","w",stdout); 
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s1[i]=(s1[i-1]+a[i])%mod;
    }
    for(int i=2;i<=n;i++){
        b[i]=(a[i]*s1[i-1])%mod;
        s2[i]=(s2[i-1]+b[i])%mod;
    }
//    for(int i=1;i<=n;i++)cout<<s2[i]<<" ";
//    cout<<endl;
    for(int i=3;i<=n;i++){
        c[i]=(a[i]*s2[i-1])%mod;
        s3[i]=(s3[i-1]+c[i])%mod;
    }
//    for(int i=1;i<=n;i++)cout<<s3[i]<<" ";
//    cout<<endl;
    for(int i=4;i<=n;i++){
        ans=(ans+s3[i-1]*a[i]%mod)%mod;
    }
    cout<<ans;
    return 0;
}