#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const char infile[] = "spell.in"; const char outfile[] = "spell.out"; ifstream fin(infile); ofstream fout(outfile); const int MAXN = 100005; const int oo = 0x3f3f3f3f; typedef vector Graph[MAXN]; typedef vector :: iterator It; const inline int min(const int &a, const int &b) { if( a > b ) return b; return a; } const inline int max(const int &a, const int &b) { if( a < b ) return b; return a; } const inline void Get_min(int &a, const int b) { if( a > b ) a = b; } const inline void Get_max(int &a, const int b) { if( a < b ) a = b; } int v[5]; int main() { scanf("%d %d %d %d", &v[1], &v[2], &v[3], &v[4]); sort(v + 1, v + 4 + 1); printf("%d\n", v[1] * v[2] + v[3] * v[4]); fin.close(); fout.close(); return 0; }