【hihocoder】 Magic Box


题目1 : Magic Box

时间限制:10000ms 单点时限:1000ms 内存限制:256MB

描述

The circus clown Sunny has a magic box. When the circus is performing, Sunny puts some balls into the box one by one. The balls are in three colors: red(R), yellow(Y) and blue(B). Let Cr, Cy, Cb denote the numbers of red, yellow, blue balls in the box. Whenever the differences among Cr, Cy, Cb happen to be x, y, z, all balls in the box vanish. Given x, y, z and the sequence in which Sunny put the balls, you are to find what is the maximum number of balls in the boxever.

For example, let's assume x=1, y=2, z=3 and the sequence is RRYBRBRYBRY. After Sunny puts the first 7 balls, RRYBRBR, into the box, Cr, Cy, Cb are 4, 1, 2 respectively. The differences are exactly 1, 2, 3. (|Cr-Cy|=3, |Cy-Cb|=1, |Cb-Cr|=2) Then all the 7 balls vanish. Finally there are 4 balls in the box, after Sunny puts the remaining balls. So the box contains 7 balls at most, after Sunny puts the first 7 balls and before they vanish.

输入

Line 1: x y z

Line 2: the sequence consisting of only three characters 'R', 'Y' and 'B'.

For 30% data, the length of the sequence is no more than 200.

For 100% data, the length of the sequence is no more than 20,000, 0 <= x, y, z <= 20.

输出

The maximum number of balls in the boxever.

提示

Another Sample

Sample Input Sample Output
0 0 0
RBYRRBY
4

样例输入
1 2 3
RRYBRBRYBRY
样例输出
7
#include <string>
#include <iostream>
#include <cmath>
//#include <fstream>
using namespace std;

int main(){

    int r,y,b;
    string s;
    //ifstream cin("in.txt");
    while(cin>>r>>y>>b>>s){

        int ans = 0,tmp=0,cr,cy,cb;
        cr = cy = cb = 0;
        for(int i = 0; i < s.size(); ++i){
            tmp++;
            if(s[i] == 'R')   cr++;
            else if(s[i] == 'Y')  cy++;
            else    cb++;
            if(abs(cr - cy) != b)
                continue;
            if(abs(cr - cb) != y)
                continue;
            if(abs(cy - cb) != r)
                continue;
            if(tmp > ans)
                ans = tmp;
            tmp = 0;
            cr = cy = cb = 0;
        }
        cout << ans << endl;
    }
    return 0;
}

优质内容筛选与推荐>>
1、秒杀思路
2、进阶篇:3.7)熔模铸造件设计
3、git rebase修改历史提交内容
4、图解win7中IIS7.0的安装及配置ASP环境
5、js中的回调地狱 Callback to Hell


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn