結果
| 問題 |
No.150 "良問"(良問とは言っていない
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-07-15 15:10:19 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,794 bytes |
| コンパイル時間 | 852 ms |
| コンパイル使用メモリ | 86,440 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-08 02:25:29 |
| 合計ジャッジ時間 | 1,651 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 8 WA * 12 |
ソースコード
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<functional>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<numeric>
#include<limits>
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef pair<ll, string> pls;
int main()
{
int T; cin >> T;
vector<int> v;
string problem = "problem",good = "good";
for (int i = 0; i < T; i++) {
string s; cin >> s;
int mx_p = 0, mx_g = 0, mx_g2 = 0, ind = 4;
for (int k = 4; k < s.size() - 6; k++) {
string str = s.substr(k, 7);
int cnt = 0;
for (int j = 0; j < str.size(); j++) {
if (problem[j] == str[j])cnt++;
}
if (mx_p <= cnt) {
mx_p = cnt;
ind = k;
}
}
for (int k = 0; k < ind - 3; k++) {
string str = s.substr(k, 4);
int cnt = 0;
for (int j = 0; j < str.size(); j++) {
if (good[j] == str[j])cnt++;
}
if (mx_g < cnt) {
mx_g = cnt;
}
}
for (int k = 0; k < s.size() -10; k++) {
string str = s.substr(k, 4);
int cnt = 0;
for (int j = 0; j < str.size(); j++) {
if (good[j] == str[j])cnt++;
}
if (mx_g2 < cnt) {
mx_g2 = cnt;
ind = k;
}
}
if ( (mx_g2 > mx_g) && (mx_g2 >= mx_p)) {
mx_g = mx_g2;
mx_p = 0;
for (int k = ind+4; k < s.size()-7; k++) {
int cnt = 0;
string str = s.substr(k,7);
for (int j = 0; j < str.size(); j++) {
if (str[j] == problem[j])cnt++;
}
if (mx_p <= cnt) {
mx_p = cnt;
cout << str << endl;
}
}
}
//cout << 11 - mx_p - mx_g << endl;
v.push_back(11 - mx_p - mx_g);
}
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
return 0;
}