AtCoder ABC 169の復習

今回、オンラインで解いていたのですが、
すっかりはまってしまってC解けなかった雑魚です・・・。

復習します。


A
特にコメントはないです!

a, b = map(int, input().split())
print(a*b)


B

もうちょっとくふうできたかなぁ・・・?と思ってます
N = int(input())
a = list(map(int, input().split()))
max = 10**18
sum = 1
a.sort(reverse=True)
for i in a:
  sum *= i 
  if sum > max:
    sum = -1
    break
if 0 in a:
  sum = 0
print(sum)


C
これ、コンテスト中には通らなかったやつです

import math
A, B = input().split()
print(math.floor(int(A)*float(B)))


C(別解)
Bの数値を分離して、100倍した値をintとして計算しておくとよいそうです、思いつかなかった・・・

A, B = input().split()
BA, BB = B.split(".")
#print(A, BA, BB)
print((int(A)*(int(BA)*100+int(BB))//100))

以上