- #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==