#include <iostream> #include <vector> using namespace std; long long num(int left, int right) { long long sum = 0; for (int i = 1; i <= left + 1; i++) { sum += i; } sum *= (right + 1); return sum; } int main() { int n; cin >> n; vector<int> arr; int a; while (cin >> a) { arr.push_back(a); } //cout<<arr[n-1]<<endl; long long sum = 0; for (int i = 0; i < n; i++) { int left = i; int right = n - i - 1; sum += (num(left, right) * arr[i]) % static_cast<long long>(1e9 + 7); } sum = sum % static_cast<long long>(1e9 + 7); printf("%lld", sum); //cout<<sum<<endl; return 0; } // 64 位输出请用 printf("%lld")