SRM 535 Div2 Easy FoxAndIntegers

問題

3つの整数A, B, Cがあり,A+B, B-C, A+B, B+Cだけが与えられた時,A, B, Cを求める問題.そのようなA, B, Cが無ければ空のintリストを返す.

解答

入力からA, B, Cを求めることが出来る.後はそのようなA, B, Cが整数かどうかをチェック.チェックは求めた数をint型で保存し,そのようなA, B, Cの値から入力の値が作れるかどうかでチェック.

class FoxAndIntegers
{
public:
  vector <int> get(int AminusB, int BminusC, int AplusB, int BplusC)
    {
      int A = (AminusB + AplusB) / 2;
      int B = (BminusC + BplusC) / 2;
      int C = BplusC - B;
      vector <int> res;
      if (AminusB == (A-B) &&
          BminusC == (B-C) &&
          AplusB == (A+B) &&
          BplusC == (B+C)){
        res.push_back(A);
        res.push_back(B);
        res.push_back(C);
      }
      return res;
    }
};