結果
問題 |
No.906 Y字グラフ
|
ユーザー |
|
提出日時 | 2019-10-11 23:19:01 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 998 bytes |
コンパイル時間 | 1,421 ms |
コンパイル使用メモリ | 160,180 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-11-25 09:38:21 |
合計ジャッジ時間 | 2,242 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 WA * 21 |
ソースコード
#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; if(n > 4){ a3 = (n-4) % 3 == 0 ? 1 : 0; a2 = ((n-4) / 2) % MOD * 3; a2 %= MOD; //if((n-4) % 6 == 0) a2--; ans -= a2 + a3; if(ans < 0) ans = MOD-ans; ans *= pow_mod(3*2, MOD-2); ans %= MOD; ans += ((n-4) / 2) % MOD; ans += a3; ans %= MOD; cout << ans << endl; }else{ cout << 1 << endl; } return 0; }