結果
| 問題 |
No.727 仲介人moko
|
| コンテスト | |
| ユーザー |
moko_freedom
|
| 提出日時 | 2018-04-28 15:55:33 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 840 bytes |
| コンパイル時間 | 1,264 ms |
| コンパイル使用メモリ | 158,164 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-27 23:21:33 |
| 合計ジャッジ時間 | 2,985 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 3 |
| other | WA * 25 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int my_pow(long long a, long long b, int mod) {
long long res = 1;
while (b > 0) {
if (b & 1) (res *= a) %= mod;
(a *= a) %= mod;
b >>= 1;
}
return (int)res;
}
int comb(int n, int r, int mod) {
long long N = 1;
for (int i = 1; i <= r; i++) (N *= (n - i + 1)) %= mod;
long long R = 1;
for (int i = 1; i <= r; i++) (R *= i) %= mod;
R = my_pow(R, mod - 2, mod);
return N * R % mod;
}
int main() {
int n;
int mod = (int)1e9 + 7;
cin >> n;
long long goods = comb(2 * n, n, mod) - comb(2 * n, n - 1, mod);
if (goods <= 0) goods += mod;
long long people = 1;
for (int i = 1; i <= n; i++) (people *= i) %= mod;
(people *= people) %= mod;
cout << goods * people % mod << endl;
return 0;
}
moko_freedom