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) != EOF && n != 0) { sum = 0; min = MAX; for(i=1; i<=n; i++) { count = 0; c = getchar(); while(c != ' ') { if(c == ' ') { sum++; count++; } c = getchar(); } if(count < min) min = count; } printf("%d ", sum - min * n); } return 0; }