Problem:
Score : 300 points

Problem Statement

Compute A \times B, truncate its fractional part, and print the result as an integer.

Constraints

0 \leq A \leq 10^{15}

0 \leq B < 10

A is an integer.

B is a number with two digits after the decimal point.

Input

Input is given from Standard Input in the following format:

A B

Output

Print the answer as an integer.

Sample Input 1

198 1.10

Sample Output 1

217

We have 198 \times 1.10 = 217.8. After truncating the fractional part, we have the answer: 217.

Sample Input 2

1 0.01

Sample Output 2

0

Sample Input 3

1000000000000000 9.99

Sample Output 3

9990000000000000

Solution in Kotlin (1.3.71) (judge verdict: Wrong Answer)

import java.util.*
import java.math.*
import java.lang.Math.*

val readString: ()->String = {readLine()!!}
val readInt: ()->Int = {readLine()!!.toInt()}
val readLong: ()->Long = {readLine()!!.toLong()}
val readIntArray: ()->IntArray = {readLine()!!.split(' ').map{it.toInt()}.toIntArray()}
val readLongArray: ()->LongArray = {readLine()!!.split(' ').map{it.toLong()}.toLongArray()}
val errPrintln: (String)->Unit = {msg -> System.err.println(msg)}
val MOD = 1e9.toLong()+7
val INF = Int.MAX_VALUE/2
val LINF = Long.MAX_VALUE/2


fun main(args: Array<String>) {
    val (SA, SB) = readString().split(' ')
    val A = SA.toLong()  // [0, 1e15]
    val B = SB.toDouble()  // [0.00, 9.99]
    val BL = (B * 100).toLong() // [0, 999]

    if (A==0L || BL==0L) {
        println(0)
        return
    }
    assert(A>0 && B>0){"A>0 && B>0"}
    val ans = if (A/100L > 1e18.toLong()/BL)  A / 100L * BL else A * BL / 100

    println(ans)
}