fork(1) download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6. int i = 0, pos = 1, neg = 0, n;
  7. string str;
  8. char x;
  9. while(1){
  10. cin >> x;
  11. if(x == '=') break;
  12. else if (x == '?') continue;
  13. else if (x == '+') pos++;
  14. else if (x == '-') neg++;
  15. str[i++] = x;
  16. }
  17. str[i] = '\0';
  18. // cout << str[0] << str[1] << str.size() << endl;
  19. cin >> n;
  20.  
  21. if (!(pos * n - neg >= n && pos - neg * n <= n))
  22. cout << "Impossible" << endl;
  23.  
  24. else{
  25. cout << "Possible\n";
  26. int neg_sum, pos_sum;
  27. for (int i = neg; i <= neg * n; i++){
  28. pos_sum = n + i;
  29. if(pos_sum <= pos * n && pos_sum >= pos) {
  30. neg_sum = i; pos_sum = n + i;
  31. break;
  32. }
  33. }
  34. // cout << str.size() << endl;
  35. // cout << pos_sum << " " << neg_sum << endl;
  36. int pos_count = 1, neg_count = 0;
  37. for(int i = -1 ; i < pos + neg - 1; i++){
  38. // cout << "i " << i << " " << str[i] <<endl;
  39. if(!(i + 1)){
  40. if(pos == 1) cout << pos_sum << " ";
  41. else cout << pos_sum / (pos - 1) << " ";
  42. }
  43.  
  44. else{
  45. if(str[i] == '+'){
  46. if(pos_count++ != pos -1) cout << "+ "<< pos_sum / (pos - 1) << " ";
  47. else cout << "+ "<< pos_sum % (pos - 1) << " ";
  48. }
  49. else{
  50. if(neg == 1) cout << "- " << neg_sum << " ";
  51. else if(neg_count++ != neg -1) cout << "- "<< neg_sum / (neg - 1) << " ";
  52. else cout << "- "<< neg_sum % (neg - 1) << " ";
  53. }
  54. }
  55. }
  56. cout << "= " << n;
  57. }
  58. return 0;
  59. }
Success #stdin #stdout 0s 3420KB
stdin
? - ? + ? + ? + ? + ? - ? - ? - ? - ? + ? - ? - ? - ? + ? - ? + ? + ? + ? - ? + ? + ? + ? - ? + ? + ? - ? + ? - ? + ? - ? - ? + ? + ? + ? + ? + ? + ? + ? - ? + ? + ? + ? + ? - ? - ? - ? + ? - ? - ? - ? - ? - ? - ? + ? - ? + ? + ? - ? - ? - ? - ? + ? - ? - ? + ? + ? - ? + ? + ? - ? - ? - ? + ? + ? - ? - ? + ? - ? - ? + ? - ? + ? - ? - ? - ? - ? + ? - ? + ? - ? + ? + ? + ? - ? + ? + ? - ? - ? + ? = 123456
stdout
Possible
2520 - 1 + 2520 + 2520 + 2520 + 2520 - 1 - 1 - 1 - 1 + 2520 - 1 - 1 - 1 + 2520 - 1 + 2520 + 2520 + 2520 - 1 + 2520 + 2520 + 2520 - 1 + 2520 + 2520 - 1 + 2520 - 1 + 2520 - 1 - 1 + 2520 + 2520 + 2520 + 2520 + 2520 + 2520 + 2520 - 1 + 2520 + 2520 + 2520 + 2520 - 1 - 1 - 1 + 2520 - 1 - 1 - 1 - 1 - 1 - 1 + 2520 - 1 + 2520 + 2520 - 1 - 1 - 1 - 1 + 2520 - 1 - 1 + 2520 + 2520 - 1 + 2520 + 2520 - 1 - 1 - 1 + 2520 + 2520 - 1 - 1 + 2520 - 1 - 1 + 2520 - 1 + 2520 - 1 - 1 - 1 - 1 + 2520 - 1 + 2520 - 1 + 2520 + 2520 + 2520 - 1 + 2520 + 2520 - 1 - 1 + 26 = 123456