题目

源地址:

http://poj.org/problem?id=1493

理解

题目虽然这么长,但是意思很简单,就是求左右合并之后中间剩下的空格数量。分别求出每行的空格数,排序,跟最小真相减之后叠加即可。

代码

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
#define MAX 100

char tmp[30];
int n;
int space[MAX];
int ans;

int main(int argc, char const *argv[])
{
    while (cin >> n && n != 0)
    {
        memset(space, 0, sizeof(space));
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < 25; j++)
            {
                scanf("%c", &tmp[j]);
                if (tmp[j] == ' ') space[i]++;
            }
            getchar();
        }
        sort(space, space + n);
        ans = 0;
        for (int i = 0; i < n; i++)    ans += space[i] - space[0];
        cout << ans << endl;
    }
    return 0;
}

更新日志

  • 2014年07月25日 已AC。