結果
問題 | No.797 Noelちゃんとピラミッド |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
#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; }