/**
我们寄信都要贴邮票，在邮局有一些小面值的邮票，通过这些小面值邮票中的一张或几张的组合，可以满足不同邮件的不同邮资。
现在，邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票，面值可以相同也可以不同，要求编程求出用这4种面值所能组
成的邮资的最大值。
*/

#include<stdio.h>
int main()
{
    int a, b, c, d, i, j, k, l;
    static int s[1000];  /*邮资*/
    scanf("%d %d %d %d", &a, &b, &c, &d);  /*输入四种面值邮票*/
    for(i=0; i<=5; i++)  /*循环变量i用于控制a分面值邮票的张数，最多5张*/
        for(j=0; i+j<=5; j++)  /*循环变量j用于控制b分面值邮票的张数，a分邮票+b分邮票最多5张*/
            for(k=0; k+i+j<=5; k++)  /*循环变量k用于控制c分面值邮票的张数，a分邮票+b分邮票+c分邮票最多5张*/
                for(l=0; k+i+j+l<=5; l++)  /*循环变量l用于控制d分面值邮票的张数,a分邮票+b分邮票+c分邮票+d分邮票最多5张*/
                    if( a*i+b*j+c*k+d*l )
                        s[a*i+b*j+c*k+d*l]++;
    for(i=1; i<=1000; i++)
        if( !s[i] )
            break;
    printf("The max is %d.\n", --i);
    return 0;
}

//运行结果：

//1 3 5 10
//The max is 36.↙︎
