#include <iostream> #include <string> #include <cmath> using namespace std; int main() { int n, k, d = 0, div, zero=0; bool con = true; cin >> n; cin >> k; if (n / k < 2) { cout << zero; return 0; } char* tab = new char[n + k]; if ((n + k - 1) % k == 0) { for (int i = 0; i < n + k - 1; i++) { if ((con == true)) { div = ceil(((n + k - 1) / k) + d) - 1; con = false; } if (i == div) { tab[i] = '|'; d = d + k + i; con = true; } else { cin >> tab[i]; } } } else { for (int i = 0; i < n + k - 1; i++) { if ((con == true)) { div = ceil(((n + k - 1) / k) + d); con = false; } if (i == div) { tab[i] = '|'; d = d + k + i + 1; con = true; } else { cin >> tab[i]; } } } /*for (int i = 0; i < n + k; i++) { cout << tab[i]; }*/ int counter = 0; int l = 0; con = true; for (int i = 0; i < k; i++) { do { if ((tab[l] == '(') && (tab[l + 1] == ')')) { counter++; for (int m = 2;; m++) { for (int j = 1;; j++) { if ((tab[l + m] == ')') && (tab[l - j] == '(')) { counter++; } else if (((tab[l + m] == '|') || (tab[l - j] == '|')) || (((l + m > n + k) || (l - j < 0)))) { break; } } break; } } l++; } while ((tab[l + 1] != '|') && (l + 1 < n + k)); } cout << counter; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | #include <iostream> #include <string> #include <cmath> using namespace std; int main() { int n, k, d = 0, div, zero=0; bool con = true; cin >> n; cin >> k; if (n / k < 2) { cout << zero; return 0; } char* tab = new char[n + k]; if ((n + k - 1) % k == 0) { for (int i = 0; i < n + k - 1; i++) { if ((con == true)) { div = ceil(((n + k - 1) / k) + d) - 1; con = false; } if (i == div) { tab[i] = '|'; d = d + k + i; con = true; } else { cin >> tab[i]; } } } else { for (int i = 0; i < n + k - 1; i++) { if ((con == true)) { div = ceil(((n + k - 1) / k) + d); con = false; } if (i == div) { tab[i] = '|'; d = d + k + i + 1; con = true; } else { cin >> tab[i]; } } } /*for (int i = 0; i < n + k; i++) { cout << tab[i]; }*/ int counter = 0; int l = 0; con = true; for (int i = 0; i < k; i++) { do { if ((tab[l] == '(') && (tab[l + 1] == ')')) { counter++; for (int m = 2;; m++) { for (int j = 1;; j++) { if ((tab[l + m] == ')') && (tab[l - j] == '(')) { counter++; } else if (((tab[l + m] == '|') || (tab[l - j] == '|')) || (((l + m > n + k) || (l - j < 0)))) { break; } } break; } } l++; } while ((tab[l + 1] != '|') && (l + 1 < n + k)); } cout << counter; } |