Regionals 1995 >> North America - East Central NA
问题链接:UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces。
题意简述:输入若干测试实例,每个实例首先输入n,之后输入n行字符串,若n=0则程序结束。每行的字符串包含字符"X"和空格,"X"在两边,空格在中间。可以用左边或右边的X去填充中间的空格,每行填充的"X"都一样多,问某行空格被填充完时,总共还剩下多少空格。
问题分析:这个问题实际上就是统计空格数和找空格最少行有多少空格问题。剩余空格数=总空格数-空格最少行的空格数×n。
程序说明:直接按字符读入处理,没有使用输入缓冲区。
AC的C语言程序如下:
/* UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces */
#include <stdio.h>
#define MAX 100000
int main(void)
{
int n, sum, min, count, i;
char c;
while(scanf("%d\n", &n) != EOF && n != 0) {
sum = 0;
min = MAX;
for(i=1; i<=n; i++) {
count = 0;
c = getchar();
while(c != '\n') {
if(c == ' ') {
sum++;
count++;
}
c = getchar();
}
if(count < min)
min = count;
}
printf("%d\n", sum - min * n);
}
return 0;
}