The_Law

Untitled

Feb 10th, 2019
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. void f(int &state)
  7. {
  8.     if (state == 0) {
  9.         state = 1;
  10.     } else if (state == 1) {
  11.         cout << ':';
  12.     } else if (state == 2) {
  13.         state = 1;
  14.         cout << ':';
  15.         cout << '-';
  16.     }
  17. }
  18.  
  19. void foo(char *src, int n)
  20. {
  21.     int state = 0;
  22.    
  23.     for (int i = 0; i < n; ++i) {
  24.         if (src[i] == ':') {
  25.             f(state);
  26.         } else if (state == 0) {
  27.             cout << src[i];
  28.         } else if (state == 1) {
  29.             if (src[i] == '-')
  30.                 state = 2;
  31.             else {
  32.                 state = 0;
  33.                 cout << src[i];
  34.             }
  35.         } else if (state == 2) {
  36.             if (src[i] == ')')
  37.                 state = 3;
  38.             else if (src[i] == '(')
  39.                 state = 4;
  40.             else {
  41.                 state = 0;
  42.                 cout << src[i];
  43.             }
  44.         } else if (state == 3) {
  45.             if (src[i] != ')') {
  46.                 state = 0;
  47.                 cout << src[i];
  48.             }
  49.         } else if (state == 4) {
  50.             if (src[i] != '(') {
  51.                 state = 0;
  52.                 cout << src[i];
  53.             }
  54.         }
  55.     }
  56.  
  57.     f(state);
  58.     return;
  59. }
  60.  
  61.  
  62. int main()
  63. {
  64.     char src[] = {':', ':', ':', '-', ')', 'a', ':', '-'};
  65.     foo(src, 8);
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment