今天上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;
}