#include <iostream> #include <cstdio> using namespace std; const int MOD = 1e9 + 7, N = 3e5 + 10; long long n, m, sZ, cZ, sF, cF, a[N], x = 1; int main(){ cin >> n >> m; for(int i = n; i>= 0; i--) scanf("%lld", &a[i]); for(int i = 0; i <= n; i++){ if(a[i] * x < 0 ) cF += (sF + a[i] * x) / MOD, sF = (sF + a[i] * x % MOD) % MOD; else cZ += (sZ + a[i] * x) / MOD, sZ = (sZ + a[i] * x % MOD) % MOD; x = (x * (m - i)) % MOD; } if(cZ > cF) cout << (sZ + sF + MOD) % MOD; else if(cF > cZ) cout << (sZ + sF - MOD) % MOD; else cout << (sZ + sF) % MOD; return 0; }
有话要说...