You have a necklace of N red, white, or blue beads (3<=N<=350)some of which are red, others blue, and others white, arranged at random.Here are two examples for n=29:
1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r w w b b r r b b b b b b r b r r b r b r r r b r r r r r r b r b r r r w Figure A Figure B r red bead b blue bead w white bead
The beads considered first and second in the text that follows havebeen marked in the picture.
The configuration in Figure A may be represented as a string of b'sand r's, where b represents a blue bead and r represents a red one, asfollows: brbrrrbbbrrrrrbrrbbrbbbbrrrrb .
Suppose you are to break the necklace at some point, lay it outstraight, and then collect beads of the same color from one enduntil you reach a bead of a different color, and do the same forthe other end (which might not be of the same color as the beadscollected before this).
Determine the point where the necklace should be broken so that themost number of beads can be collected.
For example, for the necklace in Figure A, 8 beads can be collected,with the breaking point either between bead 9 and bead 10 or else betweenbead 24 and bead 25.
In some necklaces, white beads had been included as shown inFigure B above. When collecting beads,a white bead that isencountered may be treated as either red or blue and then paintedwith the desired color. The string that represents thisconfiguration can include any of the three symbols r, b and w.
Write a program to determine the largest number of beads that can becollected from a supplied necklace.
Line 1: | N, the number of beads |
Line 2: | a string of N characters, each of whichis r, b, or w |
29 wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
11
Two necklace copies joined here v wwwbbrwrbrbrrbrbrwrwwrbwrwrrb|wwwbbrwrbrbrrbrbrwrwwrbwrwrrb ******|***** rrrrrb bbbbb <-- assignments rrrrr#bbbbbb 5 x r 6 x b <-- 11 total
题意:
题目中的字母形成环,求出任意一个节点向左向右得到的相同颜色的珠子的总和,求出最大和。
思路:
将原串再复制一遍使环变成线性,循环一遍得到每一个节点的和,得到最大值即答案。
CODE;
/*
ID:sotifis3
LANG:C++
TASK:beads
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include