結果
問題 | No.252 "良問"(良問とは言っていない (2) |
ユーザー |
![]() |
提出日時 | 2015-07-31 21:41:49 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 66 ms / 2,000 ms |
コード長 | 1,174 bytes |
コンパイル時間 | 638 ms |
コンパイル使用メモリ | 70,796 KB |
実行使用メモリ | 12,124 KB |
最終ジャッジ日時 | 2024-07-17 23:05:00 |
合計ジャッジ時間 | 1,373 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 7 |
ソースコード
#include<iostream>#include<cstdio>#include<vector>#include<queue>#include<map>#include<set>#include<string>#include<algorithm>#include<functional>using namespace std;#define FOR(i,a,b) for (int i=(a);i<(b);i++)#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)#define REP(i,n) for (int i=0;i<(n);i++)#define RREP(i,n) for (int i=(n)-1;i>=0;i--)#define INF 1<<30#define MP make_pair#define mp make_pair#define pb push_back#define PB push_back#define DEBUG(x) cout<<#x<<": "<<x<<endl#define ll long long#define ull unsigned long longint NG[1000020];int M[1000020];int main(){cin.tie(0);ios::sync_with_stdio(false);int T;cin>>T;string problem="problem";string good="good";while(T--){string s;cin>>s;int len = s.size();REP(i,len+10){NG[i] = (i) ? NG[i-1]:0;M[i] = 1145140;if(i+6>=len) M[i] = 1145140;else{M[i]=0;REP(x,7) if(s[i+x]!=problem[x]) M[i]++;if(M[i]==0) NG[i]++;}}int mini = 1145140;RREP(i,len+1) M[i] = min(M[i],M[i+1]);REP(i,len-4){int cnt=0;REP(x,4) if(s[i+x] != good[x]) cnt++;mini = min(mini,cnt+M[i+4]+((i>=7)? NG[i-7]:0));}cout<<mini<<endl;}}