#include #include #define ASDF (1000000007) long modinv(long src, long mod) { long num = mod - 2; long res = 1; while(0 < num){ if(num % 2 == 1){ res = (res * src) % mod; num--; } src = (src * src) % mod; num /= 2; } return res; } int main() { long n; std::cin >> n; long conv = 1; long sum = 0; for(long i = 1; i <= n; i++){ long a; std::cin >> a; sum = (sum + a * conv) % ASDF; conv = (conv * (n - i)) % ASDF; conv = (conv * modinv(i, ASDF)) % ASDF; } std::cout << sum << std::endl; }