#include <bits/stdc++.h>

using namespace std;


int main(){
    //入力
    int A,B,C,X,Y,Z;
    cin >> X>>Y>>Z;
    if(X>=Y && X>=Z){
        A=X;
        if(Y>=Z){
            B=Y, C=Z;
        } else {
            B=Z, C=Y;
        }
    } else if(Y>=X && Y>=Z){
        A=Y;
        if(X>=Z){
            B=X, C=Z;
        } else {
            B=Z, C=X;
        }
    } else {
        A=Z;
        if(X>=Y){
            B=X, C=Y;
        } else {
            B=Y, C=X;
        }
    }
    //cout << A << B << C<< endl;
    if(C-B==B-A){
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    return 0;

    
}
#include<bits/stdc++.h>
//#include <atcoder/all>

#define rep(i,n)for(int i=0;(i)<(int)(n);i++)
#define REP(i,a,b)for(int i=(int)(a);(i)<=(int)(b);i++)
#define ALL(a)  (a).begin(),(a).end()
#define pb push_back
#define fi first
#define se second
#define sz(x) ((int)x.size())
 
using namespace std;
//using namespace atcoder;
using ld = long double;
using ll =  long long;
using P = pair<ll, ll>;
 
template<typename T> bool chmin(T& a, const T& b) { if(a >= b){ a = b; return 1;} return 0; }
template<typename T> bool chmax(T& a, const T& b) { if(a <= b){ a = b; return 1;} return 0; }


const ll MOD = 1e9 + 7;
const ll INF = 1e9;


int main(){
    vector<int> a(3);
    rep(i, 3)cin >> a[i];
    sort(ALL(a));
    bool f = false;
    do{
        if(a[1] - a[0] == a[2] - a[1])f = true;
    }while(next_permutation(ALL(a)));
    cout << (f ? "Yes" : "No") << endl;
}
 