T_T越来越水了,这次只做出A+B.

A题为了代码简单直接枚举(插入位置和插入字符)

 1 //CF #286 Div.2 A
 2 #include<vector>
 3 #include<string>
 4 #include<cstdio>
 5 #include<cstring>
 6 #include<cstdlib>
 7 #include<iostream>
 8 #include<algorithm>
 9 #define rep(i,n) for(int i=0;i<n;++i)
10 #define F(i,j,n) for(int i=j;i<=n;++i)
11 #define D(i,j,n) for(int i=j;i>=n;--i)
12 using namespace std;
13 const int N=10086;
14 
15 void read(int &v){
16     v=0;int sign=1; char ch=getchar();
17     while(ch<'0' || ch>'9') {if (ch=='-') sign=-1; ch=getchar();}
18     while(ch>='0'&&ch<='9'){v=v*10+ch-'0'; ch=getchar();}
19     v*=sign;
20 }
21 /****************tamplate***********************/
22 
23 string s,s1;
24 bool check(int pos,char ch){
25     s1="";
26     rep(i,pos) s1+=s[i];
27     s1+=ch;
28     F(i,pos,s.length()-1) s1+=s[i];
29 
30     for(int l=0,r=s1.length()-1;l<r;l++,r--)
31         if (s1[l]!=s1[r]) return 0;
32     return 1;
33 }
34 
35 int main(){
36     ios::sync_with_stdio(false);
37     cin >> s;
38     int l=0,r=s.length(),pos=-1;
39 
40     bool sign=1;
41     F(i,0,s.length())
42         rep(j,26) if (check(i,j+'a')) {
43             cout <<s1<<endl;
44             return 0;
45         }
46     printf("NA");
47     return 0;
48 }
View Code

相关文章: