結果
問題 | No.797 Noelちゃんとピラミッド |
ユーザー | やむなく |
提出日時 | 2019-03-15 21:34:55 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 599 bytes |
コンパイル時間 | 1,843 ms |
コンパイル使用メモリ | 161,812 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 20:31:17 |
合計ジャッジ時間 | 5,294 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 60 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define all(x) (x).begin(),(x).end() #define SP <<" "<< #define MOD 1000000007 #define IINF 1000000000 #define LINF 1000000000000000000 typedef long long LL; typedef long double LD; LL inv(LL x){ LL p=MOD-2; LL ret=1; while(p){ if(p&1) ret=ret*x%MOD; p>>=1; x=x*x%MOD; } return ret; } int main(){ int n; cin >> n; vector<LL> a(n); for(int i=0;i<n;i++){ cin >> a[i]; } LL ans=a[0]; LL c=1; for(LL i=1;i<n;i++){ c=c*(n-i)%MOD*inv(i)%MOD; ans=(ans+a[i]*c)%MOD; } cout << ans << endl; return 0; }