output_description: If it is possible to distribute the packs so that each student gets the same
  number of candies, print `Yes`. Otherwise, print `No`.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      a b c
attempt: /**
   * code generated by JHelper
   * More info: https://github.com/AlexeyDmitriev/JHelper
   * @author
   */
  
  #include <iostream>
  #include <fstream>
  
  #include <bits/stdc++.h>
  using namespace std;
  
  typedef long long ll;
  #define tr(container, it) \
          for (auto it = container.begin(); it != container.end(); it++)
  #define scontains(c, x) ((c).find(x) != (c).end())   //O(log n)
  #define contains(c, x) (find((c).begin(),(c).end(),x) != (c).end()) //O(n)
  #define pll pair<ll,ll>
  #define pii pair<int,int>
  #define mll map<ll,ll>
  #define intv(x, a, b)((x)>=a && (x)<=b)
  #define  rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
  #define  _for(i, end) for (__typeof(end) i = 0; i < (end); i += 1)
  #define all(x) (x).begin(),(x).end()
  //#define len(array)  (sizeof(array)/sizeof((array)[0]))
  #define what_is(x) cerr << #x << " is " << x << endl;
  #define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }
  #define mod(x, m) ((((x) % (m)) + (m)) % (m))
  const double PI = 2 * acos(.0);
  const int INF = 0x3f3f3f3f;
  const ll LLINF = 1000000000000000005LL;;
  const ll MOD = (ll) (1e9) + 7;
  void _mod(ll &x){x = mod(x, MOD);}
  //const ll MOD = (ll) 998244353 ;
  const double EPS = 1e-10;
  
  template<typename A, size_t N, typename T>
  void Fill(A (&array)[N], const T &val) {
      std::fill((T *) array, (T *) (array + N), val);
  }
  
  
  //#define int ll
  
  class A2FightingOverCandies {
  public:
  void solve(std::istream& cin, std::ostream& cout) {
      int a,b,c;
      cin >> a >> b >> c;
      cout << (a + b + c == 2*max({a,b,c})? "Yes":"No") << endl;
  }
  };
  
  
  #undef int
  int main() {
  	A2FightingOverCandies solver;
  	std::istream& in(std::cin);
  	std::ostream& out(std::cout);
  	solver.solve(in, out);
  	return 0;
  }
  
problem_description: Statement
  
  Two students of AtCoder Kindergarten are fighting over candy packs.
  
  There are three candy packs, each of which contains a, b, and c candies,
  respectively.
  
  Teacher Evi is trying to distribute the packs between the two students so that
  each student gets the same number of candies. Determine whether it is
  possible.
  
  Note that Evi cannot take candies out of the packs, and the whole contents of
  each pack must be given to one of the students.
samples: [{"input": "10 30 20", "output": "Yes\n    \n\nGive the pack with 30 candies to one student, and give the two packs with 10\nand 20 candies to the other. Then, each gets 30 candies.\n\n* * *"}, {"input": "30 30 100", "output": "No\n    \n\nIn this case, the student who gets the pack with 100 candies always has more\ncandies than the other.\n\nNote that every pack must be given to one of them.\n\n* * *"}, {"input": "56 25 31", "output": "Yes"}]