#include #define SORT(a) sort(a.begin(), a.end()) #define RSORT(a) sort(a.rbegin(), a.rend()) #define REP(i, n) for (int i = 0; i < n; i++) #define FOR(i, start, end) for (int i = start; i < end; i++) #define ALL(a) a.begin(), a.end() #define MOD(a) a %= 1'000'000'007 using ll = long long; using namespace std; const int INF32 = 1'050'000'000; const long long INF64 = 4'000'000'000'000'000'000; const int MOD7 = 1'000'000'007; const int MOD9 = 1'000'000'009; template inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } void print() { std::cout << '\n'; } template void print(H &&head, T &&... args) { std::cout << head; sizeof...(args) == 0 ? std::cout << "" : std::cout << ' '; print(std::forward(args)...); } template void print(std::vector &v) { for (int i = 0; i < v.size(); i++) { std::cout << v[i]; i == v.size() - 1 ? std::cout << '\n' : std::cout << ' '; } } template void print(std::vector> &v) { for (int i = 0; i < v.size(); i++) { for (int j = 0; j < v[i].size(); j++) { std::cout << v[i][j]; j == v[i].size() - 1 ? std::cout << '\n' : std::cout << ' '; } } } int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; string s; cin.ignore(); getline(cin, s); REP(i, s.size()) { if (isspace(s[i])) { print("assert"); return 0; } } vector a(3); a[0] = stoll(s); FOR(i, 1, 3) cin >> a[i]; RSORT(a); ll mx = a[0] + a[1]; REP(i, 3) { REP(j, 3) { if (i == j) continue; ll sum = a[i] + a[j]; if (sum < mx) { print(sum); return 0; } } } return 0; }