stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

long long int a, s;

int b, c;

cin>>a;

scanf("%d.%d", &b, &c);

b=b*100+c;

s=b*a/100;

cout<<s<<endl;

return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.1124859376232745x):
#include<cstdio>

#define LL long long

#define eps 1e-6

int main(){

	LL a,b,c;

	double d;

	scanf("%lld%lf",&a,&d);

	d+=eps;

	b=d*100;

	c=a*b/100;

	printf("%lld\n",c);

}
// Slower C++ solution:
#include<iostream>

#include<string>

using namespace std;

int main()

{

	string s;

	long long  n,p;

	while (cin>>n>>s)

	{

		int l = s.length();

		int b, m;

		b = m = -1;

		for (int i = 0; i < l; i++)

		{

			if (s[i] != '0')

			{

				b = i;

				break;

			}

		}

		for (int i = b; i < l; i++)

		{

			if (s[i] == '.')

			{

				m = i;

				break;

			}

		}

		p = 0;

		if (m != -1)

		{

			for (int i = l-1; i > m; i--)

			{

				p = (s[i] - '0') * n + p;

				p = p / 10;

			}

		}

		if (b != -1)

		{

			if (b == m)

				cout << p << endl;

			else

			{

				for (int i = m-1; i >= b; i--)

				{

					p = (s[i] - '0') * n + p;

					s[i] = p % 10;

					p /= 10;

				}

				

				if (p)

				{

					cout << p;

				}

				for (int i = b; i < m; i++)

				{

					cout << (int)s[i];

				}

				cout << endl;

			}

		}

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.159485677908947x):
#include<cstdio>

#define LL long long

#define eps 1e-6

int main(){

	LL a,b,c;

	double d;

	scanf("%lld%lf",&a,&d);

	d+=eps;

	b=d*100;

	c=a*b/100;

	printf("%lld\n",c);

}
// Slower C++ solution:
#include<cstdio>

#include<iostream>

#include<cstring>

 

using namespace std;

//初始化 

void initial(string &a, string &b){

	while (a.size()<b.size())a = '0' + a;

	while (b.size()<a.size())b = '0' + b;

}

//找出最大的字符串 

void findMax(string &a, string &b){

	string tmp;

	if (a<b){

		tmp = b;

		b = a;

		a = tmp;

	}

}

//删除第一个字符'0' 

bool del(string &a){

	if (a[0] == '0'){

		a.erase(0, 1);

		return true;

	}

	else

		return false;

}

//删除前面所有的 0 

void delAllZroe(string &a){

	while (del(a)){

		del(a);

	};

}

//大数加法 

string bigItergeAdd(string a, string b){

	initial(a, b);

	a = '0' + a;

	b = '0' + b;

	for (int i = a.size() - 1; i >= 0; i--){

		int num1 = a[i] - '0';

		int num2 = b[i] - '0';

		if (num1 + num2>9){

			a[i - 1] = a[i - 1] - '0' + 1 + '0';

			a[i] = (num1 + num2) - 10 + '0';

		}

		else{

			a[i] = (num1 + num2) + '0';

		}

	}

	del(a);

	//	cout<<a<<endl;

	return a;

}

//大数乘法(大数加法实现) 

void bigItergeMul(string a, string b){

	delAllZroe(a);

	delAllZroe(b);

	if (a == "" || b == ""){ printf("0\n"); return; }

	initial(a, b);

	findMax(a, b);

	string res = "0";

	int count = 0;

	delAllZroe(b);

	for (int i = b.size() - 1; i >= 0; i--){

		int num1 = b[i] - '0';

		if (i != b.size() - 1)		a = a + '0';

		for (int i = 1; i <= num1; i++){

			res = bigItergeAdd(res, a);

		}

	}

	delAllZroe(res);

	if (res.size()<3){ printf("0\n"); return; }

	res=res.erase(res.size()-2,2);

	cout << res << endl;

}

 

int main(){

	string a, b, t=".";

	cin>>a>>b;

	int p=b.find(t);

	b=b.erase(p,1);

	bigItergeMul(a,b);	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.2521665065451355x):
#include<cstdio>

#define LL long long

#define eps 1e-6

int main(){

	LL a,b,c;

	double d;

	scanf("%lld%lf",&a,&d);

	d+=eps;

	b=d*100;

	c=a*b/100;

	printf("%lld\n",c);

}
// Slower C++ solution:
#include <cmath>

#include <cstdlib>

#include <iostream>

#include <bitset>

#include <deque>

#include <list>

#include <map>

#include <set>

#include <queue>

#include <stack>

#include <vector>

#include <algorithm>

#include <iterator>

#include <string>

#include <chrono>

#include <random>

#include <tuple>

#include <utility>

#include <fstream>

#include <complex>

#include <cstdint>

#define _USE_CMATH_DEFINES



const long INF = (1l << 30);

const long LINF = (1l << 60); //1.15*10^18



long a;

std::string s;



int main(){

    std::cin >> a >> s;

    //std::cout << a << '!' << s << std::endl;

    long c = (s[0] - '0') * 100 + (s[2] - '0') * 10 + (s[3] - '0');

    //printf("%ld\n", c);

    printf("%ld\n", a * c / 100);

}


// Faster C++ solution for the same problem (measured speedup: 5.234113142649643x):
#include <cstdio>



int main(){

  long a, b, c;

  scanf("%ld %ld.%ld", &a, &b, &c);

  printf("%ld\n", a*(b*100+c)/100);

}
// Slower C++ solution:
#include <iostream>

using namespace std;

 

int main(){

  long long int a;

  double b;

  cin >> a >> b;

  int c=b*100+0.5;

  cout << a*c/100 << endl;

}


// Faster C++ solution for the same problem (measured speedup: 5.31563990600178x):
#include <cstdio>

 

int main(){

  long a, b, c;

  scanf("%ld %ld.%ld", &a, &b, &c);

  printf("%ld\n", a*(b*100+c)/100);

}
// Slower C++ solution:
#include<iostream>

#include<map>

#include<string>

#include<cstdio>

typedef long long ll;

const ll inf = 1e18; 

using namespace std;



int main()

{

	ios::sync_with_stdio(false);

	cin.tie(0);

	long double a;

	long double b;

	cin>>a>>b;

	cout<<(ll)(a*b)<<endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.349946954859045x):
#include<cstdio>

using namespace std;

typedef long long ll;

int main()

{

	ll a,b;

	char s[5];

	scanf("%lld%s",&a,&s);

	b=(s[0]-'0')*100+(s[2]-'0')*10+(s[3]-'0');

	printf("%lld\n",a*b/100);

	return 0;

}
// Slower C++ solution:
#include <cstdio>

#include <cstring>

#include <cmath>

#include <utility>

#include <iostream>

#include <functional>

#include <bitset>

#include <algorithm>

#include <vector>

#include <forward_list>

#include <set>

#include <map>

#include <queue>

#include <deque>

#include <stack>

#include <numeric>

#include <iomanip>  //setprecision(桁)

using namespace std;

#define pb push_back

#define rep(i,n) for(int i = 0;i < n;i++)

#define INF 1e+9



struct edge {

    int to;

    double cost;

};



// <最短距離, 頂点の番号>

using P = pair<double, int>;



int V;

const int ci = 2e5+ 5;

vector<edge> G[ci];

double d[ci];



void dijkstra(int s) {

    priority_queue<P, vector<P>, greater<P> > que;

    fill(d, d+V, INF);

    d[s] = 0;

    que.push(P(0, s));



    while (!que.empty()) { //cout << "On" << endl;

        P p = que.top();

        que.pop();

        int v = p.second; //cout << "v=" << v << endl;

        if (d[v] < p.first) continue;

        for (int i=0; i<G[v].size(); i++) {

            edge e = G[v][i]; //cout << "koo" << endl;

            if (d[e.to] > d[v] + e.cost) { //cout << e.cost << endl;

                d[e.to] = d[v] + e.cost;

                que.push(P(d[e.to], e.to));

            }

        }

    }

}



int main(){

    long double a,b; cin >> a >> b;

    long long int ans = a * b;

    cout << ans << endl;

}

// Faster C++ solution for the same problem (measured speedup: 6.344194640867337x):
#include <iostream>

#include <string>

#include <vector>

#include <algorithm>

#include <utility>

#include <tuple>

#include <cstdint>

#include <cstdio>

#include <map>

#include <queue>

#include <set>

#include <stack>

#include <deque>

#include <unordered_map>

#include <unordered_set>

#include <bitset>

#include <cctype>

#include <numeric>

#include <cmath>

#include <iomanip> //cout << fixed << setprecision(15) << << endl;

#include <cassert>

//#include "atcoder/all"



using namespace std;

//using namespace atcoder;



typedef long long ll;



#define pb push_back

#define rep(i, n) for(int i=0;i<(n);i++)

#define REP(i, n) for(int i=1;i<=(n);i++)

#define P pair<int,int>



int mx8[] = {0, 0, 1, -1, -1, 1, -1, 1};

int my8[] = {-1, 1, 0, 0, -1, -1, 1, 1};

int mx4[] = {1, -1, 0, 0};

int my4[] = {0, 0, -1, 1};



const int MOD = 1000000007;



int main() {

    ios::sync_with_stdio(false);



    ll a; double b; cin >> a >> b;

    ll b1 = b*100 + 0.5;

    ll ans = a * b1 / 100;

    cout << ans << endl;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll inf=1e18;

int n;

ll ans=1;

int main(){

	ll a,b;

	string s;

	cin>>a>>s;

	b=(s[0]-'0')*100+(s[2]-'0')*10+(s[3]-'0');

	ans=a*b;

	ans/=100;

	cout<<ans<<endl;

}

// Faster C++ solution for the same problem (measured speedup: 5.142696821414502x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

int main()

{

	unsigned long long a;

	string s;

	scanf("%lld",&a);

	cin>>s;

	unsigned long long x= (s[0]-'0')*100 + (s[2]-'0')*10 + (s[3]-'0'); 

	printf("%llu",x*a/100);

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.096854021834324x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

    unsigned long long q,z;

    double w;

    scanf("%llu %lf",&q,&w);

    w+=1e-6;

    z=w*100;

    q*=z;

    printf("%llu\n",q/100);

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.070645449657558x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
//

//	Created by shamim_nik

//



#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>

using namespace __gnu_pbds;

using namespace std;



typedef long long ll;

typedef tree<int,null_type,less<int>,rb_tree_tag,

		tree_order_statistics_node_update> indexed_set;



#define br printf("\n")

#define pi acos(-1)



int main () {

	ios::sync_with_stdio(0);

	cin.tie(0);



//	freopen("input.txt", "r", stdin);

//	freopen("output.txt", "w", stdout);



	ll a;

	double b;

	cin >> a >> b;

	b *= 100;

	cout << ll((a * (ll)(round(b ))) / 100) << "\n";

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.233677724800804x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include <iostream>

#include <cstdio>

#include <algorithm>

#include <cstring>

#include <string>

#include <cmath>

#include <cstdlib>

#define ll long long

using namespace std;

int main()

{

	ll a;

	double b;

	scanf("%lld %lf",&a,&b);

	b=b+1e-7;

	ll c=b*100;

	ll d=c*a/100;

	printf("%lld",d);

}

// Faster C++ solution for the same problem (measured speedup: 5.067176700312365x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include <bits/stdc++.h>

#define ll long long

using namespace std;

const int N = 1e6 + 10;



signed main() {

	// ios::sync_with_stdio(false);

	ll a, c;

	double b;

	cin >> a >> b;

	c = b * 100 + 0.1;

	cout << (ll)(a * c / 100) << '\n';

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.1625723194929485x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
///   ***   ---   |||		 In the name of ALLAH		|||   ---   ***   ///







#include<bits/stdc++.h>

using namespace std;





typedef long long ll;

typedef vector<int> vi;

typedef vector<ll> vl;

typedef vector<vi> vvi;

typedef vector<vl> vvl;

typedef pair<int,int> pii;

typedef pair<double, double> pdd;

typedef pair<ll, ll> pll;

typedef vector<pii> vii;

typedef vector<pll> vll;

typedef double dl;



#define endl '\n'

#define PB push_back

#define F first

#define S second

#define all(a) (a).begin(),(a).end()

#define rall(a) (a).rbegin(),(a).rend()

#define sz(x) (int)x.size()



const double PI = acos(-1);

const double eps = 1e-9;

const int inf = 2000000000;

const ll infLL = 9000000000000000000;

#define MOD 1000000007



#define mem(a,b) memset(a, b, sizeof(a) )

#define sqr(a) ((a) * (a))



#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

#define fraction() cout.unsetf(ios::floatfield); cout.precision(0); cout.setf(ios::fixed,ios::floatfield);

#define file() freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);



#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {			cerr << endl;}

template < typename T, typename ... hello>void faltu( T arg, const hello &... rest) {cerr << arg << ' ';faltu(rest...);}



ll gcd ( ll a, ll b ) { return __gcd ( a, b ); }

ll lcm ( ll a, ll b ) { return a * ( b / gcd ( a, b ) ); }





int dx[] = { 0, 0, +1, -1, -1  +1, -1, +1 };

int dy[] = { +1, -1, 0, 0, -1, +1, +1, -1 };



int stoi ( char c ) {return c-'0';}



int main()

{

	optimize();



	ll a;

	cin >> a;



	string s;

	cin >> s;



	ll b = stoi ( s[0] ) * 10;

	b += stoi ( s[2] );

	b *= 10;

	b += ( stoi ( s[3] ) );



	a *= b;

	a /= 100;

	cout << a << endl;





	return 0;

}
































// Faster C++ solution for the same problem (measured speedup: 5.212936263292377x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include<iostream>

#include<string.h>

#include <algorithm>

#include <cstring>

#include <math.h>

#include <map>

using namespace std;



int main()

{

	long long a;

	char s[4];

	cin>>a>>s;

	int bb =(s[0]-'0')*100 +(s[2]-'0')*10+(s[3]-'0');

	long long ans =bb*a/100;

	cout<<ans<<endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.102052133664338x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string a,b;

int dian;

char c[100],d[100],ans[100];

void mut(string a,string b){

    int la=a.length();

    int lb=b.length();

    int x=0;

    for(int i=0;i<la;i++)

        c[la-i-1]=a[i]-'0';

    for(int i=0;i<lb;i++)

        d[lb-i-1]=b[i]-'0';

    for(int i=0;i<la;i++){

        x=0;

        for(int j=0;j<lb;j++){

            ans[i+j]=ans[i+j]+x+c[i]*d[j];

            x=ans[i+j]/10;

            ans[i+j]=ans[i+j]%10;

        }

        ans[i+lb]=x;

    }

    int lc=la+lb;

    while(lc>1&&ans[lc-1]==0)

        lc--;

    if(lc<dian)

        printf("0");

    for(int i=lc-1;i>=dian;i--)

        printf("%d",ans[i]);

}

int main()

{

    cin>>a>>b;

    int lb=b.length();

    string tmp="";

    for(int i=0;i<lb;i++){

        if(i==0&&b[i]=='0')continue;

        if(b[i]!='.')

            tmp+=b[i];

        else{

            dian=lb-i-1;

        }

    }

    mut(a,tmp);

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.144397235258024x):
#include<stdio.h>

int main()

{

  	long long int a,s;

	double  b;

	 scanf ("%lld",&a);

	 scanf("%lf",&b);

	s=b*100+0.001;

	s=(a*s)/100;

	 printf("%lld",s);

	 }
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll inf=1e18;

int n;

ll ans=1;

int main(){

	ll a,b;

	string s;

	cin>>a>>s;

	b=(s[0]-'0')*100+(s[2]-'0')*10+(s[3]-'0');

	ans=a*b;

	ans/=100;

	cout<<ans<<endl;

}

// Faster C++ solution for the same problem (measured speedup: 4.763981626347002x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

int main()

{

	unsigned long long a;

	string s;

	scanf("%lld",&a);

	cin>>s;

	unsigned long long x= (s[0]-'0')*100 + (s[2]-'0')*10 + (s[3]-'0'); 

	printf("%llu",x*a/100);

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 4.721514752937147x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

    unsigned long long q,z;

    double w;

    scanf("%llu %lf",&q,&w);

    w+=1e-6;

    z=w*100;

    q*=z;

    printf("%llu\n",q/100);

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 4.697236215695172x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
//

//	Created by shamim_nik

//



#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>

using namespace __gnu_pbds;

using namespace std;



typedef long long ll;

typedef tree<int,null_type,less<int>,rb_tree_tag,

		tree_order_statistics_node_update> indexed_set;



#define br printf("\n")

#define pi acos(-1)



int main () {

	ios::sync_with_stdio(0);

	cin.tie(0);



//	freopen("input.txt", "r", stdin);

//	freopen("output.txt", "w", stdout);



	ll a;

	double b;

	cin >> a >> b;

	b *= 100;

	cout << ll((a * (ll)(round(b ))) / 100) << "\n";

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 4.848262572148816x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include <iostream>

#include <cstdio>

#include <algorithm>

#include <cstring>

#include <string>

#include <cmath>

#include <cstdlib>

#define ll long long

using namespace std;

int main()

{

	ll a;

	double b;

	scanf("%lld %lf",&a,&b);

	b=b+1e-7;

	ll c=b*100;

	ll d=c*a/100;

	printf("%lld",d);

}

// Faster C++ solution for the same problem (measured speedup: 4.694022909774027x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include <bits/stdc++.h>

#define ll long long

using namespace std;

const int N = 1e6 + 10;



signed main() {

	// ios::sync_with_stdio(false);

	ll a, c;

	double b;

	cin >> a >> b;

	c = b * 100 + 0.1;

	cout << (ll)(a * c / 100) << '\n';

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 4.782393465688947x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
///   ***   ---   |||		 In the name of ALLAH		|||   ---   ***   ///







#include<bits/stdc++.h>

using namespace std;





typedef long long ll;

typedef vector<int> vi;

typedef vector<ll> vl;

typedef vector<vi> vvi;

typedef vector<vl> vvl;

typedef pair<int,int> pii;

typedef pair<double, double> pdd;

typedef pair<ll, ll> pll;

typedef vector<pii> vii;

typedef vector<pll> vll;

typedef double dl;



#define endl '\n'

#define PB push_back

#define F first

#define S second

#define all(a) (a).begin(),(a).end()

#define rall(a) (a).rbegin(),(a).rend()

#define sz(x) (int)x.size()



const double PI = acos(-1);

const double eps = 1e-9;

const int inf = 2000000000;

const ll infLL = 9000000000000000000;

#define MOD 1000000007



#define mem(a,b) memset(a, b, sizeof(a) )

#define sqr(a) ((a) * (a))



#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

#define fraction() cout.unsetf(ios::floatfield); cout.precision(0); cout.setf(ios::fixed,ios::floatfield);

#define file() freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);



#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {			cerr << endl;}

template < typename T, typename ... hello>void faltu( T arg, const hello &... rest) {cerr << arg << ' ';faltu(rest...);}



ll gcd ( ll a, ll b ) { return __gcd ( a, b ); }

ll lcm ( ll a, ll b ) { return a * ( b / gcd ( a, b ) ); }





int dx[] = { 0, 0, +1, -1, -1  +1, -1, +1 };

int dy[] = { +1, -1, 0, 0, -1, +1, +1, -1 };



int stoi ( char c ) {return c-'0';}



int main()

{

	optimize();



	ll a;

	cin >> a;



	string s;

	cin >> s;



	ll b = stoi ( s[0] ) * 10;

	b += stoi ( s[2] );

	b *= 10;

	b += ( stoi ( s[3] ) );



	a *= b;

	a /= 100;

	cout << a << endl;





	return 0;

}
































// Faster C++ solution for the same problem (measured speedup: 4.829048540102775x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include<iostream>

#include<string.h>

#include <algorithm>

#include <cstring>

#include <math.h>

#include <map>

using namespace std;



int main()

{

	long long a;

	char s[4];

	cin>>a>>s;

	int bb =(s[0]-'0')*100 +(s[2]-'0')*10+(s[3]-'0');

	long long ans =bb*a/100;

	cout<<ans<<endl;

	

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 4.72633006873542x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string a,b;

int dian;

char c[100],d[100],ans[100];

void mut(string a,string b){

    int la=a.length();

    int lb=b.length();

    int x=0;

    for(int i=0;i<la;i++)

        c[la-i-1]=a[i]-'0';

    for(int i=0;i<lb;i++)

        d[lb-i-1]=b[i]-'0';

    for(int i=0;i<la;i++){

        x=0;

        for(int j=0;j<lb;j++){

            ans[i+j]=ans[i+j]+x+c[i]*d[j];

            x=ans[i+j]/10;

            ans[i+j]=ans[i+j]%10;

        }

        ans[i+lb]=x;

    }

    int lc=la+lb;

    while(lc>1&&ans[lc-1]==0)

        lc--;

    if(lc<dian)

        printf("0");

    for(int i=lc-1;i>=dian;i--)

        printf("%d",ans[i]);

}

int main()

{

    cin>>a>>b;

    int lb=b.length();

    string tmp="";

    for(int i=0;i<lb;i++){

        if(i==0&&b[i]=='0')continue;

        if(b[i]!='.')

            tmp+=b[i];

        else{

            dian=lb-i-1;

        }

    }

    mut(a,tmp);

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 4.765556819400187x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

   long long a,s;

   double b;

   cin>>a>>b;

    s=round(b*100);

    s=(s*a)/100;

   cout<<s;

return 0;}


// Faster C++ solution for the same problem (measured speedup: 4.77734989565448x):
#include<stdio.h>

#include<math.h>

int main()

{

	long long int a,b,ans;

    double s;

	scanf("%lld %lf",&a,&s);

	b=round(s*100);

	ans=a*b/100;

	printf("%lld",ans);

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

const int c = 300000;

int main(){

   int n,b[c]={},w[c]={},ans=c;

   string s;

   cin >> n >> s;

   for(int i=0;i<n;i++){

       int flag = 0,flag1=0;

       if(s[i]=='#') flag++;

       b[i+1] = b[i] + flag;

       if(s[n-i-1]=='.') flag1++;

       w[i+1] = w[i] + flag1;

   }

   reverse(w,w+n+1);

   for(int i=0;i<=n;i++) ans = min(ans,b[i]+w[i]);

   cout << ans << endl;

}

// Faster C++ solution for the same problem (measured speedup: 3.4171741371479927x):
#include <bits/stdc++.h>

using namespace std;

int main(){

   int n,w=0,b=0;

   string s;

   cin >> n >> s;

   for(int i=0;i<n;i++){

       if(s[i]=='.') w++;

   }

   int ans = w;

   for(int i=0;i<n;i++){

       if(s[i]=='#') b++;

       else w--;

       ans = min(ans,b+w);

   }

   cout << ans << endl;

}