結果
問題 |
No.906 Y字グラフ
|
ユーザー |
|
提出日時 | 2019-10-11 23:10:17 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 837 bytes |
コンパイル時間 | 1,133 ms |
コンパイル使用メモリ | 159,228 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-25 09:25:31 |
合計ジャッジ時間 | 1,975 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 2 |
other | AC * 2 WA * 26 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define MOD 1000000007 #define int long long int pow_mod(int n, int m){ int ans = 1; while(m != 0){ if(m & 1) ans = ans * n % MOD; n = n * n % MOD; m >>= 1; } return ans; } int combi(int n, int r){ int a1, a2; n %= MOD; a1 = a2 = 1; for(int i = 0;i < r;i++){ a1 = (a1 * (n-i)) % MOD; a2 = (a2 * (r-i)) % MOD; } return a1 * pow_mod(a2, MOD-2) % MOD; } signed main(){ int n; cin >> n; int ans = combi(n-4+2, 2); int a2, a3; a3 = (n-4) % 3 == 0 ? 1 : 0; a2 = ((n-4) / 2) % MOD * 3; if((n-4) % 6 == 0) a2--; ans -= a2 + a3; ans *= pow_mod(3*2, MOD-2); ans %= MOD; ans += ((n-4) / 2) % MOD; ans += 1; ans %= MOD; cout << ans << endl; return 0; }