zoj1110 Dick and Jane

Dick and Jane
Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu

Submit Status

Description

Dick is 12 years old. When we say this, we mean that it is at least twelve and not yet thirteen years since Dick was born.

Dick and Jane have three pets: Spot the dog, Puff the Cat, and Yertle the Turtle. Spot was s years old when Puff was born; Puff was p years old when Yertle was born; Spot was y years old when Yertle was born. The sum of Spot's age, Puff's age, and Yertle's age equals the sum of Dick's age (d) and Jane's age (j). How old are Spot, Puff, and Yertle?

Each input line contains four non-negative integers: s, p, y, j. For each input line, print a line containing three integers: Spot's age, Puff's age, and Yertle's age. Ages are given in years, as described in the first paragraph.

Sample Input

5 5 10 9
5 5 10 10
5 5 11 10

Output for Sample Input

12 7 2
13 7 2
13 7 2

Source

University of Waterloo Local Contest 1998.06.06
 
 
 
 
分析:
暴力题,主要在于细心推导方程式。注意年龄的计算问题。这句话很重要:

Dick is 12 years old. When we say this, we mean that it is at least twelve and not yet thirteen years since Dick was born.

这就是暴力的原因。
ac代码:

#include
#include
using namespace std;

int main()
{
   int a[4],i,j,k,s,p,y;
   while(scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3])!=EOF)
   {
       for(i=0;i<=1;i++)
       for(j=0;j<=1;j++)
       for(k=0;k<=1;k++)
       {
           y=(a[3]+12-a[1]-a[2]-j-k)/3;
           p=y+a[1]+j;
           s=p+a[0]+i;
           if(y+p+s==a[3]+12)
           {
               printf("%d %d %d\n",s,p,y);//有多种年龄的组合可能,只取其中一种,故跳出。
              // break;//break只能跳出一层循环。用goto
              goto xx;
           }
       }
       xx:;
   }
    return 0;
}


你可能感兴趣的:(zoj1110 Dick and Jane)