#include <cstdio> (31159)#include <iostream> using namespace std; int a[1000010]; long long deal(int begin,int end) { long long ans = 0; for(int i=begin+1;i<=end-1;i++) { int left = i-begin+1; int right = end - i; long long tmp = ((left)*right+left-1)*a[i]; ans+=tmp; ans%=10000007; } ans += (a[begin]+a[end])*(end-begin); return ans; } int main() { int n; cin>>n; long long ans=0; int beg =1; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i] == a[i-1]) { ans += deal(beg,i-1); ans = ans%10000007; beg = i; } } ans += deal(beg,n); ans = ans%10000007; cout<<ans; } // 64 位输出请用 printf("%lld")