結果
問題 | No.346 チワワ数え上げ問題 |
ユーザー | tokizo |
提出日時 | 2018-05-12 17:28:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 996 bytes |
コンパイル時間 | 1,548 ms |
コンパイル使用メモリ | 168,756 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-28 09:37:51 |
合計ジャッジ時間 | 2,500 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define REP(i, n) for(int i = 0; i < n; i++) int main(){ cin.tie(0); ios::sync_with_stdio(false); string s; cin >> s; string t = ""; REP(i, s.size()){ if(s[i] == 'c' or s[i] == 'w') t += s[i]; } vector<int> A(t.size(), 0); int c = 0, w = 0, endw = 1e9; REP(i, t.size()){ if(t[i] == 'c'){ A[i] = c + 1; c++; }else{ A[i] = w + 1; w++; endw = i; } } if(endw == 1e9){ cout << 0 << endl; return 0; } long long ans = 0; REP(i, t.size()){ if(t[i] == 'c'){ for(int j = i + 1; j < t.size(); j++){ if(t[j] == 'w'){ long long r = A[endw] - A[j] + 1; ans += (long long)(r * (r - 1)) / 2; break; } } } } cout << ans << endl; return 0; }