fork(2) download
  1. #include <iostream>
  2. #include<cstdio>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. std::cout.sync_with_stdio(false);
  8. int zestawy;
  9. cin>>zestawy;
  10. while(zestawy--) {
  11. string element;
  12. string linijka="";
  13. int licznikMnozen = 0;
  14. bool czyMnozenie=false, czyDodawanie = false, petla=true;
  15. cin>>element;
  16. int i=0;
  17. while (element != "=") {
  18. if (element != "+" && element != "-" && element != "*") {
  19. if (element == "0") {
  20. linijka += '2';
  21. } else if (element[element.length()-1] % 2 == 0) {
  22. linijka += '0';
  23. } else {
  24. linijka += '1';
  25. }
  26. } if (element == "+") {
  27. linijka += '+';
  28. } else if (element == "-") {
  29. linijka += '-';
  30. } else if (element == "*"){
  31. linijka += '*';
  32. }
  33. if (linijka[i]=='*') {
  34. czyMnozenie=true;
  35. } else if (linijka[i] != '*' && linijka[i] != '+' && linijka[i] != '-' && czyMnozenie) {
  36. if (linijka[i-2]=='2' || linijka[i]=='2') {
  37. linijka[i-2]='2';
  38. linijka.erase(i - 1, 2);
  39. } else if (linijka[i-2]=='0' || linijka[i]=='0') {
  40. linijka[i-2]='0';
  41. linijka.erase(i - 1, 2);
  42. } else if (linijka[i-2]=='1') {
  43. linijka[i-2]='1';
  44. linijka.erase(i - 1, 2);
  45. }
  46. czyMnozenie = false;
  47. i -= 2;
  48. } else if ((linijka[i] == '+' || linijka[i] == '-') && i>1) {
  49.  
  50. if (linijka[i-3]=='2') {
  51. linijka[i-3]=linijka[i-1];
  52. linijka.erase(i - 2, 2);
  53. } else if (linijka[i-1]=='2') {
  54. linijka.erase(i - 2, 2);
  55. } else if (linijka[i-3]==linijka[i-1]) {
  56. linijka[i-3]='0';
  57. linijka.erase(i - 2, 2);
  58. } else {
  59. linijka[i-3]='1';
  60. linijka.erase(i - 2, 2);
  61. }
  62. czyDodawanie=false;
  63. i -= 2;
  64. }
  65. i++;
  66. cin>>element;
  67. }
  68. //cout<<i<<" TO JEST I"<<endl;
  69. //cout<<linijka<<endl;
  70. if (linijka.length()>1) {
  71.  
  72. if ((linijka[i-2]!='-') || (linijka[i-2]!='+')) {
  73. if (linijka[i-3]=='2') {
  74. linijka[i-3]=linijka[i-1];
  75. linijka.erase(i - 2, 2);
  76. } else if (linijka[i-1]=='2') {
  77. linijka.erase(i - 2, 2);
  78. } else if (linijka[i-3]==linijka[i-1]) {
  79. linijka[i-3]='0';
  80. linijka.erase(i - 2, 2);
  81. } else {
  82. linijka[i-3]='1';
  83. linijka.erase(i-2, 2);
  84. }
  85. }
  86. }
  87. // cout<<linijka<<endl;
  88. if (linijka=="2" || linijka == "0") {
  89. cout<<"TAK\n";
  90. } else if (linijka=="1") {
  91. cout<<"NIE\n";
  92. }
  93. }
  94. return 0;
  95. }
  96.  
Success #stdin #stdout 0s 3456KB
stdin
3
7 + 8 * 3 + 9 - 1 =
4 * 5 - 9 - 1 =
2 * 2 * 2 =
stdout
NIE
TAK
TAK