#include <iostream> #include <vector> #include <cmath> using namespace std; int xis(string s) {//系数 int all = 0; for (int i = 0; i < s.length() && s[i] != 'x'; i++) all = all * 10 + s[i] - '0'; if (s[0] == 'x') all = 1; return all; } int main() { string s; while (getline(cin, s)) { // 注意 while 处理多个 case vector<string>list; int i = 0; while (i < s.length()) { int k = i; for (; s[i] != '+' && s[i] != '-' && s[i] != '=' && i < s.length(); i++) ; string a = s.substr(k, i - k); list.push_back(a); string b = s.substr(i, 1); list.push_back(b); i++; } int sign = 1, q = 1;//sign初值为一,解决首项问题,q=1代表=左边 int a = 0, b = 0, c = 0; for (auto i = list.begin(); i != list.end(); i++) if (i[0] == "+") sign = 1; else if (i[0] == "-") sign = -1; else if (i[0] == "=") sign = 1, q = -1; else if (i[0][i[0].length() - 1] == 'x') b += q * sign * xis(i[0]); else if (i[0][i[0].length() - 2] == '^') a += q * sign * xis(i[0]); else c += q * sign * xis(i[0]); int m = b * b - 4 * c * a ; if (m < 0) cout << "No Solution" << endl; else { double x1 = (-1 * sqrt(m) - b) / a / 2; double x2 = ( sqrt(m) - b) / a / 2; printf("%.2f %.2f", x1, x2); } } } // 64 位输出请用 printf("%lld")