結果
問題 | No.273 回文分解 |
ユーザー |
|
提出日時 | 2020-04-29 02:32:29 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,290 bytes |
コンパイル時間 | 1,423 ms |
コンパイル使用メモリ | 167,884 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-26 11:04:41 |
合計ジャッジ時間 | 2,566 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define REP(i,a,b) for(int i=a;i<(int)b;i++)#define rep(i,n) REP(i,0,n)#define all(c) (c).begin(), (c).end()#define zero(a) memset(a, 0, sizeof a)#define minus(a) memset(a, -1, sizeof a)#define watch(a) { std::cout << #a << " = " << a << "\n"; }template<class T1, class T2> inline bool minimize(T1 &a, T2 b) { return b < a && (a = b, 1); }template<class T1, class T2> inline bool maximize(T1 &a, T2 b) { return a < b && (a = b, 1); }template<class T, class V> istream& operator>> (istream& ist, pair<T, V>& p) { return ist >> p.first >> p.second; }template<class T> ostream& operator<< (ostream& ost, pair<T, T>& p) { return ost << p.first << ", " << p.second; }template<class T> istream& operator>> (istream& ist, vector<T>& vs) { for(auto& e: vs) ist >> e; return ist; }typedef long long ll;int const inf = INT_MAX / 2;string S;bool is_palindrome(int begin, int end) {rep(i, end - begin) {if (S[begin + i] != S[end - 1 - i]) {return false;}}return true;}int main() {cin >> S;int N = S.size();int ans = 0;rep(st, N) {REP(len, 1, N) {if (st + len > N) break;if (is_palindrome(st, st + len)) {ans = max(ans, len);}}}cout << ans << endl;}