#include <iostream> #include <string> using namespace std; string t; int l, r, x/*未知数系数和*/, n/*常量和*/, mid; int main() { cin >> t; x = 0; while (t[mid] != '=') mid++; //找到等号 for (int i = 0; i < t.length(); i++)//寻找未知数并输出 if (t[i] >= 'a' && t[i] <= 'z') { cout << t[i] << '='; break; } //处理未知数系数为一的情况 if (t[0]>='a'&&t[0]<='z') { t[0]=0; x++; } if (t[mid+1]>='a'&&t[mid+1]<='z') { t[mid+1]=0; x++; } for (int i=0; i < mid; i++) { if (t[i] >= '0' && t[i] <= '9') { l = r = i; while (t[r+1] >= '0' && t[r+1] <= '9') r++; if (r < t.length()) if (t[r+1] >= 'a' && t[r-1] <= 'z') { if (l == 0) { x += atoi(t.substr(l, r-l+1).c_str()); for (int k = l; k <= r; k++) t[k] = 0; } else { if (t[l-1] == '-') x -= atoi(t.substr(l, r - l + 1).c_str()); else x += atoi(t.substr(l, r - l + 1).c_str()); for (int k=l-1; k <= r; k++) t[k] = 0; } continue; } if (l == 0) { n -= atoi(t.substr(l, r-l+1).c_str()); for (int k = l; k <= r; k++) t[k] = 0; } else { if (t[l-1] == '-') n += atoi(t.substr(l, r - l + 1).c_str()); else n -= atoi(t.substr(l, r - l + 1).c_str()); for (int k=l-1; k <= r; k++) t[k] = 0; } } } //注意等号左右未知数系数与常量的加减情况是相反的 for (int i=mid+1; i < t.length(); i++) { if (t[i] >= '0' && t[i] <= '9') { l = r = i; while (t[r+1] >= '0' && t[r+1] <= '9') r++; if (r < t.length()) if (t[r+1] >= 'a' && t[r-1] <= 'z') { if (l == 0) { x -= atoi(t.substr(l, r - l + 1).c_str()); for (int k = l; k <= r; k++) t[k] = 0; } else { if (t[l-1] == '-') x += atoi(t.substr(l, r - l + 1).c_str()); else x -= atoi(t.substr(l, r - l + 1).c_str()); for (int k = l - 1; k <= r; k++) t[k] = 0; } continue; } if (t[l-1] == '-') n -= atoi(t.substr(l, r - l + 1).c_str()); else n += atoi(t.substr(l, r - l + 1).c_str()); for (int k = l - 1; k <= r; k++) t[k] = 0; } } printf("%.3lf", double(n) / x); return 0; }