結果

問題 No.797 Noelちゃんとピラミッド
ユーザー Tqk
提出日時 2019-03-15 21:44:07
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 45 ms / 2,000 ms
コード長 888 bytes
コンパイル時間 1,508 ms
コンパイル使用メモリ 167,092 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-07-01 20:38:35
合計ジャッジ時間 4,702 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 60
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"
using namespace std;typedef long long lint;typedef vector<lint> liv;
#define rep(i,n) for(int i=0;i<n;++i)
#define all(v) v.begin(),v.end()
#define linf 1152921504606846976
#define MAXN 100010

#define repi(i,a,b) for(int i=a;i<b;++i)
#define repr_(i,a) for(int i=a;i>=0;--i)
#define md 1000000007
lint powmod_h;
lint powmod(lint a,lint p){
	if(!p)return 1;
	if(p&1)return powmod(a,p-1)*a%md;
	else{
		powmod_h=powmod(a,p/2);
		return powmod_h*powmod_h%md;
	}
}
lint fa[100010],rfa[100010];//kaijou,gyakugen n==10^7kurai made
void setfa(lint n){
	fa[0]=1;
	repi(i,1,n)fa[i]=(fa[i-1]*i)%md;
	rfa[n-1]=powmod(fa[n-1],md-2);
	repr_(i,n-2)rfa[i]=(rfa[i+1]*(i+1))%md;
}
inline lint ncr(lint n,lint r){ return fa[n]*rfa[r]%md*rfa[n-r]%md; }

int main(){
	lint n;cin>>n;
	lint a,ans=0;
	setfa(n);
	rep(i,n){
		cin>>a;
		ans+=ncr(n-1,i)*a;
		ans%=md;
	}cout<<ans<<endl;
}
0