結果

問題 No.797 Noelちゃんとピラミッド
ユーザー Kutimoti_TKutimoti_T
提出日時 2018-01-25 08:39:00
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 111 ms / 2,000 ms
コード長 775 bytes
コンパイル時間 414 ms
コンパイル使用メモリ 58,020 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-06-30 03:49:59
合計ジャッジ時間 5,592 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 60
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
using namespace std;

typedef long long ll;

ll MOD = 1e9 + 7;

/* a^{-1} mod m */
ll inv_mod( ll a, ll m = MOD )
{
  ll b, x, u, q, abs_m, tmp; 

  abs_m = ( m < 0 ) ? -m : m;
  b = m; x = 1; u = 0; 
  while ( b > 0 ) {
    q = a / b; 
    tmp = u; u = x - q * u; x = tmp;
    tmp = b; b = a - q * b; a = tmp;
  }

  return ( x < 0 ) ? abs_m + x : x;
}

ll fact[100010];

ll nCr(int n,int r)
{
	return fact[n] * inv_mod(fact[r]) % MOD * inv_mod(fact[n - r]) % MOD;
}

int N;

int main()
{
	cin >> N;
	fact[0] = 1;
	for(int i = 1;i <= N;i++)
	{
		fact[i] = (fact[i - 1] * i) % MOD;
	}
	ll a;
	ll result = 0;
	for(int i = 0;i < N;i++)
	{
		cin >> a;
		result = (result + a * nCr(N - 1,i)) % MOD;
	}

	cout << result << endl;
	return 0;
}
0