#include #include #include // Yukicoder №73 helloworld // https://yukicoder.me/problems/no/73 // 問題文が意味不明 // *********************** // for debug #define DEBUG #define NOP do{}while(0) #ifdef DEBUG #define TRACE(...) do{printf(__VA_ARGS__);fflush(stdout);}while(0) #define TRACECR do{printf("\n");fflush(stdout);}while(0) #else #define TRACE(...) NOP #define TRACECR NOP #endif #define PRINCR printf("\n") #define NOCR(strig) do{char *p;p=strchr(strig,'\n');if(p)*p='\0';}while(0) // The out-of-date function #define asctime(...) asctime_s(...) #define ctime(...) ctime_s(...) #define strlen(a) mystr_len(a) // for stdio #define INPUT(str) do{char *p;fgets(str,sizeof(str),stdin);p=strchr(str,'\n');if(p)*p='\0';}while(0) #define REP(a,b) for(int a=0;a<(int)(b);++a) #define lolong long long #define INPBUF (250+2) // *********************** #define ALFABET (26) #define aaa(c) (lolong)alf[(c)-'a'] lolong max(lolong a,lolong b){if(a>b){return a;}return b;} // *********************** // 外部変数 lolong lmax(lolong l ) { lolong lmax = 0; for(int i = 2; i < l ; ++i ) { lmax = max( lmax , ( i * (i -1) / 2 )*( l - i ) ); } return lmax; } lolong omax(lolong o ) { lolong omax = 0; for(int i = 1; i < o ; ++i ) { omax = max( omax , ( i * (o -i) ) ); } return omax; } // *********************** int main() { char str[INPBUF]; int alf[ALFABET]; lolong cnt = 0; REP(i,ALFABET) { INPUT( str ); sscanf( str," %d", &alf[i]); } cnt = aaa( 'h' ) * aaa( 'e' ) * aaa( 'w' ) * aaa( 'r' ) * aaa( 'd' ); cnt *= lmax( aaa('l') ); cnt *= omax( aaa( 'o' )); printf("%lld\n", cnt); return 0; }