标签:
题目
思路
看了好久才懂题目的意思。
男男女女排队,给定一个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;
}
标签:
原文地址:http://blog.csdn.net/u012925008/article/details/45767745