fork(7) download
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int tab[100000000];
  6.  
  7. int main() {
  8. bool czy = false;
  9.  
  10. string in;
  11.  
  12. cin >> in;
  13.  
  14. for(int i = 0; i < in.length(); i++) {
  15.  
  16. if(in[i] == '<' && tab[i] != 1) {
  17.  
  18. for(int j = i + 1; j < in.length(); j++) {
  19.  
  20. if(in[j] == '>' && tab[j] != 1) {
  21. tab[i] = 1;
  22. tab[j] = 1;
  23. break;
  24. }
  25.  
  26. }
  27.  
  28. }
  29. else if(in[i] == '(' && tab[i] != 1) {
  30.  
  31. for(int j = i + 1; j < in.length(); j++) {
  32.  
  33. if(in[j] == ')' && tab[j] != 1) {
  34. tab[i] = 1;
  35. tab[j] = 1;
  36. break;
  37. }
  38.  
  39. }
  40.  
  41. }
  42. else if(in[i] == '{' && tab[i] != 1) {
  43.  
  44. for(int j = i + 1; j < in.length(); j++) {
  45.  
  46. if(in[j] == '}' && tab[j] != 1) {
  47. tab[i] = 1;
  48. tab[j] = 1;
  49. break;
  50. }
  51.  
  52. }
  53.  
  54. }
  55. else if(in[i] == '[' && tab[i] != 1) {
  56.  
  57. for(int j = i + 1; j < in.length(); j++) {
  58.  
  59. if(in[j] == ']' && tab[j] != 1) {
  60. tab[i] = 1;
  61. tab[j] = 1;
  62. break;
  63. }
  64.  
  65. }
  66.  
  67. }
  68.  
  69. if(in[i] == '(' || in[i] == '{' || in[i] == '[' || in[i] == '<' || in[i] == ')' || in[i] == '}' || in[i] == ']' || in[i] == '>') {
  70. ;
  71. } else {
  72. czy = true;
  73. }
  74. }
  75.  
  76. for(int i = 0; i < in.length(); i++) {
  77.  
  78. if(tab[i] == 0) {
  79. czy = true; // niepoprawne
  80. break;
  81. }
  82.  
  83. }
  84. // for(int i = 0; i < in.length(); i++) {
  85. if(in == "") {
  86. cout << "Nie";
  87. }
  88. else if(czy) {
  89. cout << "Nie"; // Niepoprawne
  90. } else {
  91. cout << "Tak"; // Poprawne
  92. }
  93.  
  94. }
Success #stdin #stdout 0.01s 5316KB
stdin
<[]>{}{{{}}}(<><>)
stdout
Tak