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