結果
問題 | No.3027 f-列とh-列 |
ユーザー |
![]() |
提出日時 | 2025-02-09 16:37:03 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,116 bytes |
コンパイル時間 | 2,972 ms |
コンパイル使用メモリ | 81,892 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2025-02-09 20:39:04 |
合計ジャッジ時間 | 4,300 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
import std.array, std.conv, std.stdio;immutable Nmax = 25;alias Polynomial = long[Nmax+1];Polynomial sum(Polynomial lhs, Polynomial rhs) {foreach (i; 0 .. Nmax+1) {lhs[i] += rhs[i];}return lhs;}Polynomial mul(Polynomial lhs, Polynomial rhs) {Polynomial result;foreach (i; 0 .. Nmax+1) {foreach (j; 0 .. i+1) {result[i] += lhs[j] * rhs[i-j];}}return result;}Polynomial mul(long lhs, Polynomial rhs) {foreach (i; 0 .. Nmax+1) {rhs[i] *= lhs;}return rhs;}Polynomial solve(Polynomial f) {Polynomial x_1;x_1[0] = -1, x_1[1] = 1;Polynomial x_1_power;x_1_power[0] = 1;Polynomial result;foreach (i; 0 .. Nmax+1) {result = sum( result, mul(f[i], x_1_power) );x_1_power = mul(x_1, x_1_power);}return result;}void main() {Polynomial f;auto N = readln[0 .. $-1].to!ulong;auto coeffs = readln.split.to!(long[]);assert (coeffs.length == N+1 && N <= Nmax);foreach (i; 0 .. N+1) {f[N-i] = coeffs[i];}auto ans_pol = solve(f);string ans;foreach (i; 0 .. N+1) {ans ~= ans_pol[N-i].to!string ~ " ";}ans[0 .. $-1].writeln;}