結果
問題 | No.2419 MMA文字列2 |
ユーザー |
![]() |
提出日時 | 2023-08-12 13:55:03 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 174 ms / 2,000 ms |
コード長 | 2,186 bytes |
コンパイル時間 | 3,274 ms |
コンパイル使用メモリ | 251,564 KB |
最終ジャッジ日時 | 2025-02-16 03:54:38 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 |
ソースコード
#include<bits/stdc++.h>#include<atcoder/all>using namespace std;using namespace atcoder;using ll = long long;using db = long double;using ch = char;using bl = bool;using st = string;using pll = pair<ll,ll>;using psl = pair<st,ll>;using vst = vector<st>;using vch = vector<ch>;using vvch = vector<vch>;using vbl = vector<bl>;using vvbl = vector<vbl>;using vdb = vector<db>;using vpll = vector<pll>;using vvpll = vector<vpll>;using vpsl = vector<psl>;using vi = vector<int>;using vvi = vector<vi>;using vvvi = vector<vvi>;using vvvvi = vector<vvvi>;using vll = vector<ll>;using vvll = vector<vll>;using vvvll = vector<vvll>;using vvvvll = vector<vvvll>;using vvvvvll = vector<vvvvll>;#define all(A) A.begin(),A.end()#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)#define rrep(i,a,b) for(ll i=(ll)(a);i<=(ll)(b);i++)#define drep(i,n) for(ll i=(ll)n-1; i>=0; i--)#define drrep(i,a,b) for(ll i=(ll)a; i>=(ll)b; i--)using mint = modint998244353;// using mint = modint1000000007;using vm = vector<mint>;using vvm = vector<vm>;using vvvm = vector<vvm>;const ll mod = 998244353;const ll INF = 3e18;template<class T> inline bool chmin(T &a, T b){if (a>b){a=b;return true;}return false;}template<class T> inline bool chmax(T &a, T b){if (a<b){a=b;return true;}return false;}ll gcd(ll a, ll b){if (a==0)return b;if (b==0)return a;ll c=a;while(a%b!=0){c=a%b;a=b;b=c;}return b;}ll lcm(ll a,ll b){return a/gcd(a,b)*b;}ll Pow(ll a, ll n){ll res=1;while(n>0){if(n%2==1)res*=a;a*=a;n/=2;}return res;}ll Pow(ll a, ll n, ll p){ll res=1;while(n>0){a%=p;if(n%2==1)res*=a;a*=a;res%=p;n/=2;}return res;}void yn(bl ok){cout << (ok?"Yes":"No") << endl;return;}st S;ch C[200010];ll dp[200010][26][4];int main(){cin>>S;ll N=S.size();rep(i,N)C[i+1]=S[i];dp[0][0][0]=1;rrep(i,1,N){rep(j,26)rep(k,4)dp[i][j][k]+=dp[i-1][j][k];ll id=C[i]-'A';dp[i][id][1]+=1;dp[i][id][2]+=dp[i-1][id][1];rep(j,26)if(j!=id)dp[i][id][3]+=dp[i-1][j][2];}ll ans=0;rep(j,26)ans+=dp[N][j][3];cout << ans << endl;return 0;}