結果
問題 | No.2073 Concon Substrings (Swap Version) |
ユーザー |
![]() |
提出日時 | 2022-09-18 01:59:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 10 ms / 2,000 ms |
コード長 | 1,226 bytes |
コンパイル時間 | 342 ms |
コンパイル使用メモリ | 42,820 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-22 01:05:18 |
合計ジャッジ時間 | 1,638 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 37 |
ソースコード
/* -*- 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]));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;}