ZOJ 1110 Dick and Jane 胡乱枚举实现。

今天上ZOJ挑了道别人说比较简单的题目做了下:

一开始连题目都没看懂,然后参考了下别人的代码(惭愧),然后用暴力枚举收缩了下范围实现了。

代码如下:

#include "stdio.h"

int main(void)
{
    int ans1;
    int ans2 ;
    int ans3;
    int s, p, y, j;
    int i, m;

    while (scanf("%d %d %d %d", &s, &p, &y, &j) != EOF)
    {
        for (i = 6; i < j + 10; ++i)
        {
            for (m = 2; m < j + 10 && m < i; ++m)
            {           
                    ans1 = i;
                    ans2 = m;
                    ans3 = (j + 12 - y - p) / 3;

                    int temp = ans1 - ans2;
                    int temp1 = ans2 - ans3;
                   
                    if (ans1 + ans2 + ans3 == j + 12)
                    {
                        if ((temp == s || temp == s + 1) &&
                            (temp1 == p || temp1 == p + 1) && (temp + temp1 - y) < 2)
                        {           
                            printf("%d %d %d/n", ans1, ans2, ans3);
                        }
                    }
            }
        }
    }

    return 0;   
}

你可能感兴趣的:(ACM)