Codeforces 612A The Text Splitting 【暴力】

来源:互联网 发布:精准的日语翻译软件 编辑:程序博客网 时间:2024/06/11 15:49

A. The Text Splitting
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given the string s of length n and the numbers p, q. Split the string s to pieces of length p and q.

For example, the string "Hello" for p = 2q = 3 can be split to the two strings "Hel" and "lo" or to the two strings "He" and "llo".

Note it is allowed to split the string s to the strings only of length p or to the strings only of length q (see the second sample test).

Input

The first line contains three positive integers n, p, q (1 ≤ p, q ≤ n ≤ 100).

The second line contains the string s consists of lowercase and uppercase latin letters and digits.

Output

If it's impossible to split the string s to the strings of length p and q print the only number "-1".

Otherwise in the first line print integer k — the number of strings in partition of s.

Each of the next k lines should contain the strings in partition. Each string should be of the length p or q. The string should be in order of their appearing in string s — from left to right.

If there are several solutions print any of them.

Sample test(s)
input
5 2 3Hello
output
2Hello
input
10 9 5Codeforces
output
2Codeforces
input
6 4 5Privet
output
-1
input
8 1 1abacabac
output
8abacabac



题意:给定一个串和两个数字p、q,你只能把串分成p长和q长的部分,让你输出任意一种方案。


AC代码:

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <set>#include <vector>#include <string>#define INF 0x3f3f3f3f#define eps 1e-8#define MAXN (100000+10)#define MAXM (200000+10)#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%.2lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define LL long long#define lson o<<1, l, mid#define rson o<<1|1, mid+1, r#define ll o<<1#define rr o<<1|1#define PI acos(-1.0)#define first fi#define second seusing namespace std;int main(){    int n, p, q;    Ri(n); Ri(p); Ri(q);    char str[110]; Rs(str); bool flag = false;    for(int i = 0; i <= n; i++)    {        for(int j = 0; j <= n; j++)        {            if(i * p + j * q == n)            {                Pi(i+j); int k = 0;                for(int k = 0; k < i; k++)                {                    for(int l = k*p; l < (k+1)*p; l++)                        printf("%c", str[l]);                    printf("\n");                }                for(int k = 0; k < j; k++)                {                    for(int l = i*p + k*q; l < (k+1)*q + i*p; l++)                        printf("%c", str[l]);                    printf("\n");                }                flag = true;                break;            }        }        if(flag)            break;    }    if(!flag)        Pi(-1);    return 0;}



0 0
原创粉丝点击