import java.io.IOException;
import java.util.Scanner;
import java.math.BigDecimal;
public class Main
{
static class complex
{
double a,b;
/*BigDecimal aa=new BigDecimal(Double.toString(a));
BigDecimal bb=new BigDecimal(Double.toString(b));*/
complex(){a=0;b=0;}
complex(double x,double y){a=x;b=y;}
}
static complex add(complex a,complex b)
{
complex z=new complex();
BigDecimal x=new BigDecimal(Double.toString(a.a));
BigDecimal y=new BigDecimal(Double.toString(b.a));
z.a=x.add(y).doubleValue();
x=new BigDecimal(Double.toString(a.b));
y=new BigDecimal(Double.toString(b.b));
z.b=x.add(y).doubleValue();
return z;
}
static complex minus(complex a,complex b)
{
complex z=new complex();
BigDecimal x=new BigDecimal(Double.toString(a.a));
BigDecimal y=new BigDecimal(Double.toString(-b.a));
z.a=x.add(y).doubleValue();
x=new BigDecimal(Double.toString(a.b));
y=new BigDecimal(Double.toString(-b.b));
z.b=x.add(y).doubleValue();
return z;
}
public static void main(String arg[])throws IOException
{
double x,y;
complex A=new complex();
complex B=new complex();
complex C=new complex();
complex D=new complex();
double z=A.a;
Scanner cin=new Scanner(System.in);
System.out.println("请输入第一个复数的实部和虚部");
x=cin.nextDouble();
y=cin.nextDouble();
A=new complex(x,y);
System.out.println("请输入第二个复数的实部和虚部");
x=cin.nextDouble();
y=cin.nextDouble();
B=new complex(x,y);
C=add(A,B);
D=minus(A,B);
char c,cc,ccc;
c='\0';cc='\0';ccc='\0';
if(A.b>0) c='+';
if(B.b>0) cc='+';
if(C.b>0) ccc='+';
System.out.print("("+A.a+""+c+""+A.b+"i)+("+B.a+""+cc+""+B.b+"i)"+"=");
System.out.println(C.a+""+ccc+""+C.b+"i");
if(D.b>0) ccc='+';
else ccc='\0';
System.out.print("("+A.a+""+c+""+A.b+"i)-("+B.a+""+cc+""+B.b+"i)"+"=");
System.out.println(D.a+""+ccc+""+D.b+"i");
}
}