結果

問題 No.2073 Concon Substrings (Swap Version)
ユーザー norikame
提出日時 2022-09-17 01:16:25
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,063 bytes
コンパイル時間 4,043 ms
コンパイル使用メモリ 251,740 KB
最終ジャッジ日時 2025-02-07 10:54:59
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 29 WA * 8
権限があれば一括ダウンロードができます

ソースコード

diff #

// 

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;

using ll = long long;

#define rep(i, n) for (int i=0; i<(int)(n); ++(i))
#define rep3(i, m, n) for (int i=(m); (i)<(int)(n); ++(i))
#define repr(i, n) for (int i=(int)(n)-1; (i)>=0; --(i))
#define rep3r(i, m, n) for (int i=(int)(n)-1; (i)>=(int)(m); --(i))
#define all(x) (x).begin(), (x).end()

const int INF = (int)(1e9);

const string tar = "con";

int main() {
	int n;
	string s;
	cin >> n >> s;
	vector<vector<int>> ccnt(3, vector<int>(3));
	vector<int> bcnt(3);
	rep(i, 3*n) {
		int cid = -1;
		rep(j, 3) if (s[i] == tar[j]) {
			cid = j;
			break;
		}
		if (cid == -1) bcnt[i%3]++;
		else ccnt[i%3][cid]++;
	}
	int cval = 0, cvcnt = 0;
	rep(i, 3) {
		int tval = INF;
		rep(j, 3) tval = min(tval, ccnt[(i+j)%3][j]);
		cval += tval;
		rep(j, 3) ccnt[(i+j)%3][j] -= tval;
		if (tval > 0) ++cvcnt;
	}
	rep(i, 2) rep(j, 3) bcnt[i] += ccnt[i][j];
	if (cvcnt<=1 || (bcnt[0]>0&&bcnt[1]>0)) cout << cval << endl;
	else cout << max(0, cval-1) << endl;
	return 0;
}
0