análisis
Lo primero que me viene a la mente es enumerar cada intervalo de forma violenta y almacenarlo en la matriz después de sumar la suma.
Pero para estabilizar T,
a su vez, piense en cuántos intervalos contribuye cada número.
Entonces, el número de apariciones de a [i] es i ∗ (n - i + 1) i * (n-i + 1)yo∗( n-yo+1 )
Subir código
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,a,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a;
ans=(ans+a*i*(n-i+1))%1000000007;
}
cout<<ans;
return 0;
}