結果
問題 | No.588 空白と回文 |
ユーザー | mogurocker |
提出日時 | 2017-11-03 22:51:25 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 81 ms / 2,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 1,337 ms |
コンパイル使用メモリ | 159,772 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-22 16:13:25 |
合計ジャッジ時間 | 2,472 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define FOR(i, n) for(int i = 0; i < (n); i++)#define FORR(x, arr) for(auto& x:arr)#define ITR(x, c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)#define MEM(a, x) memset(a, x, sizeof(a))#define ALL(a) a.begin(), a.end()#define UNIQUE(a) a.erase(unique(ALL(a)), a.end())typedef long long ll;typedef pair<int, int> P;string s;int main(int argc, char const *argv[]) {ios_base::sync_with_stdio(false);cin >> s;int ma = 1;FOR(i, s.size()) {int cnt = 1;for (int j = 1; i+j<s.size() && i-j>=0; j++) {if (s[i+j]==s[i-j]) cnt += 2;}ma = max(ma, cnt);}FOR(i, s.size()) {for (int j = 1; i+j<s.size(); j+=2) {if (s[i]==s[i+j]) {int cnt = 2;for (int k = 1; i+j+k<s.size() && i-k>=0; k++) {if (s[i+j+k]==s[i-k]) cnt += 2;}ma = max(ma, cnt);}}}cout << ma << endl;return 0;}