結果
問題 |
No.8048 Order and Harmony
|
ユーザー |
![]() |
提出日時 | 2019-04-01 22:41:00 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 594 bytes |
コンパイル時間 | 587 ms |
コンパイル使用メモリ | 120,064 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2024-11-30 13:49:30 |
合計ジャッジ時間 | 59,772 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 44 TLE * 17 |
ソースコード
#include<cstdint> #include<iostream> using u64 = std::uint_fast64_t; static constexpr u64 MOD = 1000000007; u64 scan() { u64 a; std::cin >> a; return a; } int main() { const u64 k = scan(); if (k % 2 == 1) { std::cout << 0 << std::endl; return 0; } const u64 h = k / 2; u64 ans = 1, div = 1; for (u64 i = k;i != h;--i) { ans = (ans*i) % MOD; } for (u64 i = h;i != 0;--i) { div = (div*i) % MOD; } u64 exp = MOD - 2; while (exp) { if (exp % 2) { ans = (ans*div) % MOD; } div = (div*div) % MOD; exp /= 2; } std::cout << ans << std::endl; return 0; }