首页 > 其他 > 详细

Sicily 14516. Doorman

时间:2015-05-16 14:56:08      阅读:251      评论:0      收藏:0      [点我收藏+]

题目
技术分享

思路
看了好久才懂题目的意思。
男男女女排队,给定一个Club中男女差值的最大值,问最多可以有多少人进入Club。
需要注意的是,我们可以让一个人插队到前一位。
那么当我们发现差值超过给定的最大值的时候,应该检查是否可以通过让下一个人先进(插队)来解决,如果仍然不能解决,那么之后的人都别进了。

代码

#include <stdio.h>
#include <string.h>

int main() {
    int n, m, w, i, l;
    char c[105];
    while (scanf("%d\n", &n) != EOF) {
        gets(c);
        m = w = 0;
        l = strlen(c);
        for (i = 0; i < l; i++) {
            if (c[i] == ‘M‘) m++;
            else w++;
            if (m - w > n || w - m > n) {
                if (m - w > n && i + 1 < l && c[i + 1] == ‘W‘) {
                    w++;
                    i++;
                }
                else if (w - m > n && i + 1 < l && c[i + 1] == ‘M‘) {
                    m++;
                    i++;
                }
                else {
                    break;
                }
            }
        }
        printf("%d\n", i);
    }
    return 0;
}

Sicily 14516. Doorman

原文:http://blog.csdn.net/u012925008/article/details/45767745

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!