50Pts
会输出负数,请问哪溢了???
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e6+5,mod=1e9+7;
ll a[N],s[N],t[N],p[N];
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++){cin>>a[i];s[i]=(s[i-1]+a[i])%mod;}
for(int i=1;i<=n;i++)t[i]=(((s[n]-s[i])*a[i])%mod+t[i-1])%mod;
for(int i=1;i<=n;i++)p[i]=(((t[n]-t[i])*a[i])%mod+p[i-1])%mod;
cout<<(6ll*p[n])%mod<<"\n";
return 0;
}