var readline = require('readline');
var rl = readline.createInterface({
input : process.stdin,
output : process.stdout
});
rl.on('line', function(line){
// 输入为一行字符串 "2.3 3.5 5.2 0.4"
arr = line.split(' ');
// 使用split(' ')按空格符号分割字符串为四个数据,返回一个数组
var r1 = arr[0];
var p1 = arr[1];
var r2 = arr[2];
var p2 = arr[3];
var a = r1 * Math.cos(p1);
// Math.cos(x) 余弦函数 其中x为弧度制
var b = r1 * Math.sin(p1);
// Math.sin(x) 正弦函数 其中x为弧度制
var c = r2 * Math.cos(p2);
var d = r2 * Math.sin(p2);
var re = a * c - b * d;
if (re + 0.005 >= 0 && re < 0) { //此判断逻辑来自柳神题解
// 考虑这样一种情况,re = -0.0001保留两位数,js中将会得到-0.00,还需要处理成0.00
// 先判断正负再保留两位小数
var Re = '0.00';
}else{
re = re.toFixed(2);
// 使用toFixed(2)方法保留2位小数
// 生成实部数值
Re = re.toString();
// 使用toString()方法将数字转字符串
}
var im = a * d + b * c;
var sign;
if (im >= 0) {
sign = '+';
}else if(im + 0.005 >= 0 && im < 0){
//微小负数保留后应该是+0.00而非-0.00
sign = '+';
}else{
sign = '-';
}
// 先取绝对值再保留两位小数,不要弄反
// 因为如果先保留两位小数若得到0.00再取绝对值就变成0,小数就没有了
im = Math.abs(im);
im = im.toFixed(2);
// Math.abs()取绝对值函数
Im = sign + im;
result = Re + Im + 'i'; //不必再var
console.log(result);
})