結果

問題 No.3110 Like CPCTF?
ユーザー toku4388
提出日時 2025-04-20 01:00:47
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 6 ms / 2,000 ms
コード長 736 bytes
コンパイル時間 3,787 ms
コンパイル使用メモリ 277,664 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2025-04-20 01:00:52
合計ジャッジ時間 4,193 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
bool f(string t) {
	if (t.size() != 5) return false;
	if (t[0] != t[2]) return false;
	int n = t.size();
	for (int i = 0; i < n; i++) {
		for (int j = i + 1; j < n; j++) {
			if (t[i] == t[j]) {
				if (i == 0 && j == 2) {
					;
				} else {
					return false;
				}
			}
		}
	}
	return true;
}
int main() {
	int n;
	cin >> n;
	string s;
	cin >> s;
	int ans = 0;
	vector<int> idxs;
	auto dfs = [&](auto self, int k) {
		if (idxs.size() == 5) {
			string t;
			for (int i : idxs) {
				t += s[i];
			}
			if (f(t)) ans++;
			return;
		}
		for (int i = k + 1; i < n; i++) {
			idxs.push_back(i);
			self(self, i);
			idxs.pop_back();
		}
	};
	dfs(dfs, -1);
	cout << ans << endl;
	return 0;
}
0