/* -*- coding: utf-8 -*- * * 2073.cc: No.2073 Concon Substrings (Swap Version) - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 200000; const int MAX_N3 = MAX_N * 3; /* typedef */ /* global variables */ char s[MAX_N3 + 4]; int cs[3][3], rs[3]; /* subroutines */ /* main */ int main() { int n; scanf("%d%s", &n, s); int n3 = n * 3; for (int i = 0; i < n3; i++) { int si = (s[i] == 'c') ? 0 : (s[i] == 'o') ? 1 : (s[i] == 'n') ? 2 : -1; if (si >= 0) cs[i % 3][si]++; else rs[i % 3]++; } int sum = 0; int d0 = min(cs[0][0], min(cs[1][1], cs[2][2])); rs[0] += cs[0][0] - d0; rs[1] += cs[1][1] - d0; rs[2] += cs[2][2] - d0; sum += d0; int d1 = min(cs[1][0], min(cs[2][1], cs[0][2])); if (d1 > 0 && rs[0] == 0) d1--; rs[0] += cs[0][2] - d1; rs[1] += cs[1][0] - d1; rs[2] += cs[2][1] - d1; sum += d1; int d2 = min(cs[2][0], min(cs[0][1], cs[1][2])); if (d2 > 0 && rs[1] == 0) d2--; rs[0] += cs[0][1] - d2; rs[1] += cs[1][2] - d2; rs[2] += cs[2][0] - d2; sum += d2; printf("%d\n", sum); //for (int i = 0; i < 3; i++) //printf("%d: %d,%d,%d\n", i, cs[i][C], cs[i][O], cs[i][N]); return 0; }