結果
問題 | No.588 空白と回文 |
ユーザー | tancahn2380 |
提出日時 | 2017-11-03 22:42:49 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,290 bytes |
コンパイル時間 | 680 ms |
コンパイル使用メモリ | 88,040 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-22 16:06:26 |
合計ジャッジ時間 | 1,525 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 |
ソースコード
# include <iostream> # include <algorithm> # include <vector> # include <string> # include <set> # include <map> # include <cmath> # include <iomanip> # include <functional> # include <utility> # include <stack> # include <queue> # include <list> # include <bitset> # include <complex> # include <numeric> # include <tuple> using namespace std; using LL = long long; using ULL = unsigned long long; constexpr int MOD = 1000000000 + 7; constexpr int INF = 2000000000; constexpr int HINF = INF / 2; constexpr double DINF = 100000000000000000.0; constexpr long long LINF = 9223372036854775807; constexpr long long HLINF = 4500000000000000000; const double PI = acos(-1); int dx[4] = { 0,1,0,-1 }, dy[4] = { 1,0,-1,0 }; #define ALL(x) (x).begin(),(x).end() #define mp make_pair #define eb emplace_back int main(){ string s; cin >> s; int ans = 1; for (int i = 0; i < s.size(); i++) { int count = 0; for (int j = 0;; j++) { if (i-j < 0 || i+j >= s.size())break; if (s[i + j] == s[i - j])count++; } ans = max(ans, (count-1)*2+1); } for (int i = 0; i < s.size(); i++) { int count = 0; for (int j = 0;; j++) { if (i - j < 0 || i + j + 1 >= s.size())break; if (s[i - j] == s[i + j + 1])count++; } ans = max(ans, count * 2); } cout << ans << endl; }