結果
問題 | No.252 "良問"(良問とは言っていない (2) |
ユーザー |
|
提出日時 | 2016-04-07 21:08:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 132 ms / 2,000 ms |
コード長 | 1,224 bytes |
コンパイル時間 | 1,974 ms |
コンパイル使用メモリ | 104,144 KB |
実行使用メモリ | 8,296 KB |
最終ジャッジ日時 | 2024-10-10 23:54:21 |
合計ジャッジ時間 | 2,415 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 7 |
ソースコード
#define _USE_MATH_DEFINES#include <cstdio>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>#include <algorithm>#include <cmath>#include <complex>#include <string>#include <vector>#include <list>#include <queue>#include <stack>#include <set>#include <map>#include <bitset>#include <numeric>#include <limits>#include <climits>#include <cfloat>#include <functional>using namespace std;int countDiff(const string& s, const string& t){int n = s.size();int diff = 0;for(int i=0; i<n; ++i){if(s[i] != t[i])++ diff;}return diff;}const int INF = INT_MAX / 4;int main(){int t;cin >> t;while(--t >= 0){string s;cin >> s;int n = s.size();vector<int> v(n, INF);for(int i=n-7; i>=0; --i)v[i] = min(v[i+1], countDiff(s.substr(i, 7), "problem"));int ans = INF;int cnt = 0;for(int i=0; i<n-4; ++i){if(i - 7 >= 0 && s.substr(i-7, 7) == "problem")++ cnt;int diff = countDiff(s.substr(i, 4), "good") + v[i+4];ans = min(ans, diff + cnt);}cout << ans << endl;}}