結果
問題 |
No.1126 SUM
|
ユーザー |
![]() |
提出日時 | 2020-07-25 10:18:19 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 21 ms / 1,000 ms |
コード長 | 680 bytes |
コンパイル時間 | 1,508 ms |
コンパイル使用メモリ | 169,128 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-26 23:03:46 |
合計ジャッジ時間 | 2,832 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 |
ソースコード
#include <bits/stdc++.h> using namespace std; long long power( long long x, int n, int m ) { long long res = 1; while( n > 0 ) { if( n % 2 ) res = res * x % m; x = x * x % m; n /= 2; } return res; } int main() { long long N, M; cin >> N >> M; const int MOD = 1000000000 + 7; vector<long long> fac( M + 1 ); vector<long long> ifac( M + 1 ); fac[0] = 1; ifac[0] = power( 1, MOD - 2, MOD ); for( int i = 1; i <= M; i++ ) { fac[i] = fac[i - 1] * i; fac[i] %= MOD; ifac[i] = power( fac[i], MOD - 2, MOD ); } long long ans = 0; for( int i = N; i <= M; i++ ) { ans += fac[i] * ifac[N] % MOD * ifac[i - N] % MOD; ans %= MOD; } cout << ans << endl; }