题解:AT_guildfes_2026_final_c EGFカウント

题目传送门 -LG
-AT

题目大意

给你一个字符串 \(S\),在其中找一个三元组 \((i,j,k)\) 使得:

  • $ 1\le i < j < k \le N $
  • $ S_i= $ E
  • $ S_j= $ G
  • $ S_k= $ F

统计有多少个三元组满足以上条件。

sol

注意到 \(3 \le n \le 50\) 显然想到 \(O(n^3)\) 的暴力枚举,得以下代码。

:::info[code]{open}

#include<bits/stdc++.h>
using namespace std;
int n;
int ans;
string s;//字符串
int main(){
    cin>>n;
    cin>>s;
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            for(int k=j+1;k<n;k++){//暴力枚举
                if(s[i]=='E'&&s[j]=='G'&&s[k]=='F'){//符合条件就累加答案
                    ans++;
                }
            }
        }
    }
    cout<<ans;
    return 0;
}

:::

AC记录

posted @ 2026-05-24 13:38  Synthx  阅读(9)  评论(0)    收藏  举报