The Text Splitting (將字串分成若干份,每份長度為p或q)

來源:互聯網
上載者:User

標籤:

Description

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 = 2, q = 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 Input

Input
5 2 3
Hello
Output
2
He
llo
Input
10 9 5
Codeforces
Output
2
Codef
orces
Input
6 4 5
Privet
Output
-1
Input
8 1 1
abacabac
Output
8
a
b
a
c
a
b
a
c
 1 #include<cstdio> 2 char s[1000000]; 3 int main() 4 { 5     int n,p,q,k,l1,l2,l,g; 6     while(scanf("%d %d %d",&n,&p,&q)!=EOF) 7     { 8             scanf("%s",&s); 9             g=1;10             if(n % p == 0 || n % q == 0)11             {12                 l1=(n%p == 0)?p:q;13                 l2=n/l1;14                 k=-1;15                 printf("%d\n",l2);16                 while(l2--)17                 {18                     l=l1;19                     while(l--)20                     {21                         printf("%c",s[++k]);22                     }23                     printf("\n");24                 }25             }26             else27             {28                 for(int i = 1; i < n ; i++)29                 {30                     for( int j = 1; j < n ; j++)31                     {32                         if(i*p+j*q == n)33                         {34                             printf("%d\n",i+j);35                             k=-1;36                             while(i--)37                             {38                                 l=p;39                                 while(l--)40                                 {41                                     printf("%c",s[++k]);42                                 }43                                 printf("\n");44                             }45                             46                             while(j--)47                             {48                                 l=q;49                                 while(l--)50                                 {51                                     printf("%c",s[++k]);52                                 }53                                 printf("\n");54                             }55                             g=0;56                             break;57                         }58                     }59                     if(g == 0) break;60                 }61                 if(g != 0) printf("-1\n");62            }63                 64             65     }66     67 }

 

 

 

 

The Text Splitting (將字串分成若干份,每份長度為p或q)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.