codeforces 548 A. Mike and Fax
http://codeforces.com/problemset/problem/548/A
水题。分割成K个,每个串判断是否回文,如果都是就yes,否则no
需要注意的是,可能不能正好分成长度相同的K个,这个时候也要No
1
2
3
4
5 /* ***********************************************
6 Author :111qqz
7 Created Time :2016年03月03日 星期四 14时09分08秒
8 File Name :code/cf/problem/548A.cpp
9 ************************************************ */
10
11 #include <algorithm>
12 #include <cstdio>
13 #include <iostream>
14 #include <cstring>
15 #include <string>
16 #include <cmath>
17 #include <map>
18
19 using namespace std;
20 const int N=1E3+5;
21 char st[N];
22 int k,len,ave;
23 bool ok(int l,int r)
24 {
25 for (int i = l ; i<=(l+r)/2;i++)
26 if (st[i]!=st[l+r-i])
27 return false;
28 return true;
29 }
30
31 int main()
32 {
33 cin>>st;
34 cin>>k;
35 len = strlen(st);
36 ave= len/k;
37 if (k*ave!=len){cout<<"NO"<<endl;return 0;}
38 for (int i = 1 ; i<=k;i++ )
39 {
40 if (!ok((i-1)*ave,i*ave-1))
41 {
42 cout<<"NO"<<endl;
43 //cout<<i<<endl;
44 return 0;
45 }
46
47 }
48 cout<<"YES"<<endl;
49
50
51
52 return 0;
53 }
54
55
56