#include<iostream> #include<string> using namespace std; string buma(string s) { string temp; temp = s.substr(1, s.length() - 1); if (s[0] == '0') { while (temp[0] == '0') { temp.erase(0, 1); } } else { for (int i = 0;i < temp.length();i++) { if (temp[i] == '1') { temp[i] = '0'; } else { temp[i] = '1'; } } int flag = 1; for (int i = temp.length() - 1;i >= 0;i--) { if (flag) { temp[i] += flag; if (temp[i] == '2') { temp[i] = '0'; } else { flag = 0; } } else { break; } } if (flag) { temp = s; temp.insert(0, "-"); } else { while (temp[0] == '0') { temp.erase(0, 1); } if (temp[0] != NULL) { temp.insert(0, "-"); } } } if (temp[0] == NULL) { temp += '0'; } return temp; } string yuanma(string s) { string temp; temp = s.substr(1, s.length() - 1); while (temp[0] == '0') { temp.erase(0, 1); } if (s[0] == '1'&&temp[0] != NULL) { temp.insert(0, "-"); } if (temp[0] == NULL) { temp += '0'; } return temp; } int main() { int t; cin >> t; while (t--) { int n, k; cin >> n >> k; string s; cin >> s; string temp; if (k) { temp = buma(s); } else { temp = yuanma(s); } cout << temp << endl; } } |
Double click to view unformatted code.