結果
問題 | No.2073 Concon Substrings (Swap Version) |
ユーザー |
![]() |
提出日時 | 2022-09-18 01:49:10 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 999 bytes |
コンパイル時間 | 331 ms |
コンパイル使用メモリ | 41,924 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-22 01:05:16 |
合計ジャッジ時間 | 1,700 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 25 WA * 12 |
ソースコード
/* -*- coding: utf-8 -*- * * 2073.cc: No.2073 Concon Substrings (Swap Version) - yukicoder */ #include<cstdio> #include<algorithm> 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])); sum += d0; int d1 = min(cs[1][0], min(cs[2][1], cs[0][2])); sum += (rs[0] > 0) ? d1 : max(0, d1 - 1); int d2 = min(cs[2][0], min(cs[0][1], cs[1][2])); sum += (rs[0] > 0 && rs[1] > 0) ? d2 : max(0, d2 - 1); 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; }