結果
| 問題 |
No.3110 Like CPCTF?
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-04-20 10:57:01 |
| 言語 | JavaScript (node v23.5.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,453 bytes |
| コンパイル時間 | 286 ms |
| コンパイル使用メモリ | 7,968 KB |
| 実行使用メモリ | 44,456 KB |
| 最終ジャッジ日時 | 2025-04-20 10:57:06 |
| 合計ジャッジ時間 | 2,426 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 16 |
ソースコード
function countCPCTFSubstrings(S) {
const N = S.length;
let count = 0;
// 5つの位置(p1, p2, p3, p4, p5)を選ぶ
for (let p1 = 0; p1 < N; p1++) {
for (let p2 = p1 + 1; p2 < N; p2++) {
for (let p3 = p2 + 1; p3 < N; p3++) {
for (let p4 = p3 + 1; p4 < N; p4++) {
for (let p5 = p4 + 1; p5 < N; p5++) {
// 選んだ位置の文字からなる部分文字列を構成
const sub = [S[p1], S[p2], S[p3], S[p4], S[p5]];
// CPCTF的の条件をチェック
// 1. 1文字目と3文字目のみが等しい
// 2. それ以外の文字はすべて互いに異なる
if (sub[0] === sub[2] &&
sub[0] !== sub[1] && sub[0] !== sub[3] && sub[0] !== sub[4] &&
sub[1] !== sub[2] && sub[1] !== sub[3] && sub[1] !== sub[4] &&
sub[2] !== sub[3] && sub[2] !== sub[4] &&
sub[3] !== sub[4]) {
count++;
}
}
}
}
}
}
return count;
}
// テスト例
console.log(countCPCTFSubstrings("ABACD")); // CPCTF的な文字列自体
console.log(countCPCTFSubstrings("ABABC")); // CPCTF的でない文字列