結果
| 問題 |
No.73 helloworld
|
| コンテスト | |
| ユーザー |
RCCW
|
| 提出日時 | 2017-02-18 18:07:03 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,168 bytes |
| コンパイル時間 | 397 ms |
| コンパイル使用メモリ | 54,108 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-29 23:46:17 |
| 合計ジャッジ時間 | 908 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 |
ソースコード
#include <iostream>
using namespace std;
typedef long long ll;
#define rep(i,n) for(int i=0;i<(n);i++)
int d[30];
int main(void){
rep(i, 26){
cin >> d[i];
}
ll numd = d[3];
ll nume = d[4];
ll numh = d[7];
ll numl = d[11];
ll numo = d[14];
ll numr = d[17];
ll numw = d[22];
//num* c 1
ll sum = numd * nume * numh * numr * numw;
//numl
ll maxl = 0;
for (int i = 2; i < numl; ++i){
ll tmp = (i * (i - 1) / 2) * (numl - i);//ll前半後半は一つなので組み合わせで、iC2*(numo-iC1)この組み合わせでマックスのものを取ってくる。
maxl = max(maxl, tmp);//組み合わせiC2などの求め方は(i*i-1)/2だ。順列はi*(i-1)*(i-2) 組み合わせ(i*(i-1)*(i-2))/組み合わせ数 ここで最大のやつを求めれば良い
}
//numo
ll maxo = 0;
for (int i = 1; i < numo; ++i){
ll tmp = i * (numo - i);//o前半後半は一つなので組み合わせで、iC1*(numo-iC1)
maxo = max(maxo, tmp);
}
sum *= (maxl * maxo);//最後は各アルファベットの総組み合わせ
cout << sum << endl;
return 0;
}
RCCW