結果
問題 |
No.3027 f-列とh-列
|
ユーザー |
![]() |
提出日時 | 2025-02-21 21:38:10 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 798 bytes |
コンパイル時間 | 3,775 ms |
コンパイル使用メモリ | 277,744 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2025-02-21 21:38:19 |
合計ジャッジ時間 | 4,538 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#include <bits/stdc++.h> int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); auto Com = [&](auto self, int x, int y) -> long long { if (y > x / 2) { return self(self, x, x - y); } long long res = 1; for (int i = 0; i < y; i++) { res *= (x - i); } for (int i = 1; i <= y; i++) { res /= i; } return res; }; int N; std::cin >> N; std::vector<int> F(N + 1); for (int i = 0; i <= N; i++) { std::cin >> F[i]; } std::reverse(F.begin(), F.end()); std::vector<long long> H(N + 1, 0); for (int i = 0; i <= N; i++) { for (int j = 0; j <= i; j++) { H[j] += 1LL * F[i] * Com(Com, i, j) * ((i - j) % 2 ? -1 : 1); } } for (int i = N + 1; i--;) { std::cout << H[i] << (i == 0 ? '\n' : ' '); } }