比赛 |
2024暑期C班集训2 |
评测结果 |
AWAWAAAWWW |
题目名称 |
大力枚举 |
最终得分 |
50 |
用户昵称 |
flyfree |
运行时间 |
0.082 s |
代码语言 |
C++ |
内存使用 |
2.06 MiB |
提交时间 |
2024-07-02 09:24:06 |
显示代码纯文本
#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;
// cout<<s1[i]<<" ";
}
// cout<<endl;
for(int i=1;i<n;i++){
b[i]=(a[i]*(s1[n]-s1[i]))%mod;
s2[i]=(s2[i-1]+b[i])%mod;
// cout<<b[i]<<" ";
}
// cout<<endl;
// for(int i=1;i<n;i++)cout<<s2[i]<<" ";
// cout<<endl;
for(int i=1;i<n-1;i++){
c[i]=(a[i]*(s2[n-1]-s2[i]))%mod;
s3[i]=(s3[i-1]+c[i])%mod;
// cout<<c[i]<<" ";
}
// cout<<endl;
// for(int i=1;i<n-1;i++)cout<<s3[i]<<" ";
// cout<<endl;
for(int i=1;i<=n-3;i++){
ans=(ans+a[i]*(s3[n-2]-s3[i])%mod)%mod;
}
cout<<ans;
return 0;
}