/* -*- coding: utf-8 -*- * * 3021.cc: No.3021 Maximize eval - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_N = 500000; /* typedef */ /* global variables */ char s[MAX_N + 4]; /* subroutines */ inline bool isop(int i) { return s[i] == '+' || s[i] == '-'; } bool nbrop(int i, int n) { return ((i > 0 && isop(i - 1)) || (i + 1 < n && isop(i + 1))); } /* main */ int main() { int tn; scanf("%d", &tn); while (tn--) { scanf("%s", s); int n = strlen(s); int sign = 1; for (int i = 0; i < n; i++) { if (s[i] == '?') { if (sign > 0) s[i] = '9'; else if (i == n - 1 || nbrop(i, n)) s[i] = '1'; else s[i] = '+', sign = 1; } else if (s[i] == '+') sign = 1; else if (s[i] == '-') sign = -1; } puts(s); } return 0; }