結果
問題 | No.238 Mr. K's Another Gift |
ユーザー |
![]() |
提出日時 | 2015-07-05 23:03:50 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 1,383 bytes |
コンパイル時間 | 765 ms |
コンパイル使用メモリ | 88,224 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-07 23:44:14 |
合計ジャッジ時間 | 2,049 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
#include<iostream> #include<fstream> #include<sstream> #include<string> #include<cstdio> #include<cstdlib> #include<cstring> #include<ctime> #include<stack> #include<queue> #include<set> #include<map> #include<vector> #include<list> #include<algorithm> #include<utility> #include<complex> #include<functional> using namespace std; #define input_init stringstream ss; string strtoken, token; istringstream is #define input_line getline(cin, strtoken);is.str(strtoken);is.clear(istringstream::goodbit) #define input_token(num) ss.str(""); ss.clear(stringstream::goodbit); getline(is, token, ','); ss << token; ss >> num int main(void){ string s; cin >> s; int n = (int)s.size(); if (n == 1){ cout << s << s << endl; return 0; } int l = 0, r = n - 1; bool pain = true; while(l<r){ pain &= (s[l] == s[r]); l++;r--; } if (pain){ s.insert(n / 2, 1, s[n / 2]); cout << s << endl; return 0; } l = 0, r = n - 1; while (l < r){ if (s[l] != s[r])break; l++; r--; } string s1 = s; string s2 = s; s1.insert(l, 1, s[r]); s2.insert(r+1, 1, s[l]); pain = true; l = 0, r = n; while (l < r){ pain &= (s1[l] == s1[r]); l++; r--; } if (pain){ cout << s1 << endl; return 0; } pain = true; l = 0, r = n; while (l < r){ pain &= (s2[l] == s2[r]); l++; r--; } if (pain){ cout << s2 << endl; return 0; } cout << "NA" << endl; return(0); }