码迷,mamicode.com
首页 > 其他好文 > 详细

Sicily 14516. Doorman

时间:2015-05-16 14:56:57      阅读:150      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!