记录编号 |
588986 |
评测结果 |
AAAAAAAAAA |
题目名称 |
大力枚举 |
最终得分 |
100 |
用户昵称 |
flyfree |
是否通过 |
通过 |
代码语言 |
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;
}