結果
| 問題 | No.238 Mr. K's Another Gift |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-10-22 21:52:11 |
| 言語 | C++23(gcc16) (gcc 16.2.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 4 ms / 2,000 ms |
| + 352µs | |
| コード長 | 949 bytes |
| 記録 | |
| コンパイル時間 | 2,050 ms |
| コンパイル使用メモリ | 182,428 KB |
| 実行使用メモリ | 9,904 KB |
| 最終ジャッジ日時 | 2026-10-22 21:52:35 |
| 合計ジャッジ時間 | 5,602 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 40 |
ソースコード
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
using ll = long long;
int main(void){
string s; cin >> s;
int n=s.size(), l=0, r=n-1;
string pre, aft;
while(l<=r){
if(l==r){
pre+=s[l], aft+=s[l];
break;
}
if(s[l]==s[r]){
pre+=s[l], aft+=s[r];
l++, r--;
}
else{
string now=s.substr(l, r-l+1);
{
string tar=now+s[l], t=tar;
reverse(begin(t), end(t));
if(tar==t){
pre+=tar; break;
}
}
{
string tar=s[r]+now, t=tar;
reverse(begin(t), end(t));
if(tar==t){
pre+=tar; break;
}
}
cout << "NA" << endl; return 0;
}
}
if(pre.size()+aft.size()==n) pre+='a';
reverse(begin(aft), end(aft));
pre+=aft;
string u=pre;
reverse(begin(u), end(u));
//cout << pre << ' ' << u << ' ' << aft << endl;
cout << (pre==u?pre:"NA") << endl;
return 0;
}