結果
問題 |
No.1281 Cigarette Distribution
|
ユーザー |
|
提出日時 | 2023-04-23 22:37:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 240 ms / 2,000 ms |
コード長 | 526 bytes |
コンパイル時間 | 3,868 ms |
コンパイル使用メモリ | 252,008 KB |
最終ジャッジ日時 | 2025-02-12 13:34:50 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using mint = atcoder::modint1000000007; using namespace std; int main() { int n, m; cin >> n >> m; for (int i = 0; i < m; i++){ if (i == 0){ cout << n << endl; continue; } if (n <= i * 2){ cout << 0 << endl; continue; } int N = n - ((n - i * 2 - 1) / (i + 1) + 1); mint ans = (n - i * 2 - 1) / (i + 1) + 1; ans *= (mint(N / i)).pow(i - (N % i)); if (N % i != 0){ ans *= (mint((N - 1) / i + 1)).pow(N % i); } cout << ans.val() << endl; } }