結果
問題 |
No.40 多項式の割り算
|
ユーザー |
|
提出日時 | 2025-09-05 02:41:46 |
言語 | Standard ML (MLton 20210117) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 1,290 bytes |
コンパイル時間 | 4,407 ms |
コンパイル使用メモリ | 686,844 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-05 02:41:53 |
合計ジャッジ時間 | 5,058 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun intString n = if 0 <= n then Int.toString n else "-" ^ Int.toString (abs n) fun findAns a_s = let fun findAnsAux [] = [] | findAnsAux [a] = [a] | findAnsAux [a1, a2] = [a1, a2] | findAnsAux [a1, a2, a3] = [a1, a2, a3] | findAnsAux (a1 :: a2 :: a3 :: tl) = findAnsAux (a2 :: (a3 - (~a1)) :: tl) fun dropZero [] = [] | dropZero (h::tl) = if h = 0 then dropZero tl else (h::tl) val tempAns = findAnsAux (List.rev a_s) val ans = List.rev (dropZero tempAns) in ans end fun ansString [] = "" | ansString [e] = intString e | ansString (h::tl) = (intString h) ^ " " ^ ansString tl val () = let val d = readInt () val a_s = List.tabulate (d + 1, fn _ => readInt ()) val ans = findAns a_s in ( if ans = [] then ( print "0\n"; print "0\n" ) else ( print (Int.toString (List.length ans - 1) ^ "\n"); print (ansString ans ^ "\n") ) ) end