#include <iostream>
#include <string>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
using namespace std;
string str1,str2;
string x;
string s1 = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
string s2 = "[3 4.2 10.2;12 -1 0;67 2 13]";
string ns ;
const int n=3; const int m=3;
float matrix1 [n][m];
float matrix2 [n][m];
float matrixsum [n][m];
string cutter(string &s) {
s.erase(remove(s.begin(), s.end(), '['), s.end());
s.erase(remove(s.begin(), s.end(), ']'), s.end());
replace(s.begin(), s.end(), ';', ' ');
ns = s;
return s;
}
void splitter(string x,float matrix[n][m]){
stringstream os(x);
string temp;
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
if(os >> temp){
matrix [i][j] = atof(temp.c_str()) ;
}
}
}
}
void showmatrix(float M[n][m]){
cout <<"[" ;
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
cout << M[i][j];
if(j != m-1){
cout<< " " ;
}
}
if(i != n-1){
cout << ";";
}
}
cout << "]";
}
float summing (float m1[n][m], float m2[n][m],float ms[n][m]){
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
ms[i][j] = m1[i][j] + m2[i][j] ;
}
}
return 0 ;
}
float mult (float m1[n][m], float m2[n][m],float ms[n][m]){
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
ms[i][j] = m1[i][j] * m2[i][j] ;
}
}
return 0 ;
}
float subbing (float m1[n][m], float m2[n][m],float ms[n][m]){
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
ms[i][j] = m1[i][j] - m2[i][j] ;
}
}
return 0 ;
}
void functionchoosing (){
getline(cin,str1);
getline(cin,x);
if (x == "+" ){
getline(cin,str2);
cutter(str1);
splitter(str1,matrix1);
cutter(str2);
splitter(str2,matrix2);
summing(matrix1,matrix2,matrixsum);
showmatrix(matrixsum);
}
else if(x == "-"){
getline(cin,str2);
cutter(str1);
splitter(str1,matrix1);
cutter(str2);
splitter(str2,matrix2);
subbing(matrix1,matrix2,matrixsum);
showmatrix(matrixsum);
}
else if(x== "*"){
getline(cin,str2);
cutter(str1);
splitter(str1,matrix1);
cutter(str2);
splitter(str2,matrix2);
mult(matrix1,matrix2,matrixsum);
showmatrix(matrixsum);
}
}
int main()
{
functionchoosing();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8Y3N0ZGxpYj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgc3RyMSxzdHIyOwpzdHJpbmcgeDsKc3RyaW5nIHMxID0gIlsxIC0yLjUgMzs0IDUuMjUgNjs3IDggOS4xMl0iOwpzdHJpbmcgczIgPSAiWzMgNC4yIDEwLjI7MTIgLTEgMDs2NyAyIDEzXSI7CnN0cmluZyBucyA7CmNvbnN0IGludCBuPTM7ICBjb25zdCBpbnQgbT0zOwpmbG9hdCBtYXRyaXgxIFtuXVttXTsKZmxvYXQgbWF0cml4MiBbbl1bbV07CmZsb2F0IG1hdHJpeHN1bSBbbl1bbV07CgoKCgpzdHJpbmcgY3V0dGVyKHN0cmluZyAmcykgewogICAgcy5lcmFzZShyZW1vdmUocy5iZWdpbigpLCBzLmVuZCgpLCAnWycpLCBzLmVuZCgpKTsKICAgIHMuZXJhc2UocmVtb3ZlKHMuYmVnaW4oKSwgcy5lbmQoKSwgJ10nKSwgcy5lbmQoKSk7CiAgICByZXBsYWNlKHMuYmVnaW4oKSwgcy5lbmQoKSwgJzsnLCAnICcpOwogICAgbnMgPSBzOwpyZXR1cm4gczsKfQoKdm9pZCBzcGxpdHRlcihzdHJpbmcgeCxmbG9hdCBtYXRyaXhbbl1bbV0pewoKCiAgc3RyaW5nc3RyZWFtIG9zKHgpOwogIHN0cmluZyB0ZW1wOwoKCiAgZm9yIChpbnQgaT0wO2k8bjtpKyspewoKICAgICAgICBmb3IgKGludCBqPTA7ajxtO2orKyl7CgogICAgICAgICAgICBpZihvcyA+PiB0ZW1wKXsKCiAgICAgICAgICAgICAgICAgbWF0cml4IFtpXVtqXSA9IGF0b2YodGVtcC5jX3N0cigpKSA7CgogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICB9Cgp9Cgp2b2lkIHNob3dtYXRyaXgoZmxvYXQgTVtuXVttXSl7CiAgICAgY291dCA8PCJbIiA7CiAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CgogICAgICAgIGZvciAoaW50IGo9MDtqPG07aisrKXsKCiAgICAgICAgICAgIGNvdXQgPDwgTVtpXVtqXTsKICAgICAgICAgICAgaWYoaiAhPSBtLTEpewogICAgICAgICAgICAgICAgY291dDw8ICIgIiA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoaSAhPSBuLTEpewogICAgICAgICAgICBjb3V0IDw8ICI7IjsKICAgICAgICB9CgogICAgfQoKICAgIGNvdXQgPDwgIl0iOwp9CgpmbG9hdCBzdW1taW5nIChmbG9hdCBtMVtuXVttXSwgZmxvYXQgbTJbbl1bbV0sZmxvYXQgbXNbbl1bbV0pewoKCiAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CgogICAgICAgIGZvciAoaW50IGo9MDtqPG07aisrKXsKCiAgICAgICAgICAgIG1zW2ldW2pdID0gbTFbaV1bal0gKyBtMltpXVtqXSA7CiAgICAgICAgfQoKICAgIH0KCiAgICByZXR1cm4gMCA7Cn0KCmZsb2F0IG11bHQgKGZsb2F0IG0xW25dW21dLCBmbG9hdCBtMltuXVttXSxmbG9hdCBtc1tuXVttXSl7CgoKICAgIGZvciAoaW50IGk9MDtpPG47aSsrKXsKCiAgICAgICAgZm9yIChpbnQgaj0wO2o8bTtqKyspewoKICAgICAgICAgICAgbXNbaV1bal0gPSBtMVtpXVtqXSAqIG0yW2ldW2pdIDsKICAgICAgICB9CgogICAgfQoKICAgIHJldHVybiAwIDsKfQoKZmxvYXQgc3ViYmluZyAoZmxvYXQgbTFbbl1bbV0sIGZsb2F0IG0yW25dW21dLGZsb2F0IG1zW25dW21dKXsKCgogICAgZm9yIChpbnQgaT0wO2k8bjtpKyspewoKICAgICAgICBmb3IgKGludCBqPTA7ajxtO2orKyl7CgogICAgICAgICAgICBtc1tpXVtqXSA9IG0xW2ldW2pdIC0gbTJbaV1bal0gOwogICAgICAgIH0KCiAgICB9CgogICAgcmV0dXJuIDAgOwp9Cgp2b2lkIGZ1bmN0aW9uY2hvb3NpbmcgKCl7CgogICAgZ2V0bGluZShjaW4sc3RyMSk7CiAgICBnZXRsaW5lKGNpbix4KTsKICAgIGlmICh4ID09ICIrIiApewogICAgICAgIGdldGxpbmUoY2luLHN0cjIpOwogICAgICAgIGN1dHRlcihzdHIxKTsKICAgICAgICBzcGxpdHRlcihzdHIxLG1hdHJpeDEpOwogICAgICAgIGN1dHRlcihzdHIyKTsKICAgICAgICBzcGxpdHRlcihzdHIyLG1hdHJpeDIpOwogICAgICAgIHN1bW1pbmcobWF0cml4MSxtYXRyaXgyLG1hdHJpeHN1bSk7CiAgICAgICAgc2hvd21hdHJpeChtYXRyaXhzdW0pOwoKICAgIH0KICAgIGVsc2UgaWYoeCA9PSAiLSIpewoKICAgICAgICBnZXRsaW5lKGNpbixzdHIyKTsKICAgICAgICBjdXR0ZXIoc3RyMSk7CiAgICAgICAgc3BsaXR0ZXIoc3RyMSxtYXRyaXgxKTsKICAgICAgICBjdXR0ZXIoc3RyMik7CiAgICAgICAgc3BsaXR0ZXIoc3RyMixtYXRyaXgyKTsKICAgICAgICBzdWJiaW5nKG1hdHJpeDEsbWF0cml4MixtYXRyaXhzdW0pOwogICAgICAgIHNob3dtYXRyaXgobWF0cml4c3VtKTsKCiAgICB9CiAgICBlbHNlIGlmKHg9PSAiKiIpewoKICAgICAgICBnZXRsaW5lKGNpbixzdHIyKTsKICAgICAgICBjdXR0ZXIoc3RyMSk7CiAgICAgICAgc3BsaXR0ZXIoc3RyMSxtYXRyaXgxKTsKICAgICAgICBjdXR0ZXIoc3RyMik7CiAgICAgICAgc3BsaXR0ZXIoc3RyMixtYXRyaXgyKTsKICAgICAgICBtdWx0KG1hdHJpeDEsbWF0cml4MixtYXRyaXhzdW0pOwogICAgICAgIHNob3dtYXRyaXgobWF0cml4c3VtKTsKCiAgICB9CgoKfQoKCgppbnQgbWFpbigpCnsKICAgIGZ1bmN0aW9uY2hvb3NpbmcoKTsKCgoKICAgIHJldHVybiAwOwp9Cg==