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: Accepted)

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.toULong()  // [0, 1e15]
    //val B = SB.toDouble()  // [0.00, 9.99]
    //val BUL = (B * 100).toULong() // [0, 999]

    var BUL = 0L
    BUL += (SB[0]-'0')*100L
    BUL += (SB[2]-'0')*10L
    BUL += (SB[3]-'0')


    if (A==0UL || BUL==0L) {
        println(0)
        return
    }

    val ans = A * BUL.toULong() / 100UL

    println(ans)
}