結果
| 問題 |
No.3110 Like CPCTF?
|
| コンテスト | |
| ユーザー |
sig_256
|
| 提出日時 | 2025-04-19 13:25:56 |
| 言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 765 bytes |
| コンパイル時間 | 2,436 ms |
| コンパイル使用メモリ | 78,008 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2025-04-19 13:26:00 |
| 合計ジャッジ時間 | 2,705 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 16 |
ソースコード
#include <iostream>
uint32_t mask = 0, m;
int main(){
int N, ans = 0;
std::string S;
std::cin >> N >> S;
for(char & c : S) c -= 'A';
for(int n1 = 0; n1 < N - 4; ++n1){
m = 1U << S[n1];
mask |= m;
for(int n2 = n1 + 1; n2 < N - 3; ++n2){
m = 1U << S[n2];
if((mask & m) != 0) continue;
mask |= m;
for(int n3 = n2 + 1; n3 < N - 2; ++n3){
if(S[n1] != S[n3]) continue;
for(int n4 = n3 + 1; n4 < N - 1; ++n4){
m = 1U << S[n4];
if((mask & m) != 0) continue;
mask |= m;
for(int n5 = n4 + 1; n5 < N - 0; ++n5){
m = 1U << S[n5];
if((mask & m) != 0) continue;
ans ++;
}
mask ^= (1U << S[n4]);
}
}
mask ^= (1U << S[n2]);
}
mask ^= (1U << S[n1]);
}
std::cout << ans << std::endl;
}
sig_256