結果
問題 | No.27 板の準備 |
ユーザー |
![]() |
提出日時 | 2017-05-08 22:52:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 86 ms / 5,000 ms |
コード長 | 854 bytes |
コンパイル時間 | 873 ms |
コンパイル使用メモリ | 69,376 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-26 13:00:38 |
合計ジャッジ時間 | 3,303 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> using namespace std; int V0, V1, V2, V3; int Cnt(int a, int b, int c); int main() { cin >> V0 >> V1 >> V2 >> V3; int ans = 999999; for (int A = 1; A <= 30; A++) { for (int B = 1; B <= 30; B++) { for (int C = 1; C <= 30; C++) { ans = min(ans, Cnt(A, B, C)); } } } cout << ans << endl; } int Cnt(int a, int b, int c) { int Check[31]; for (int i = 0; i <= 30; i++) { Check[i] = 99999; } Check[0] = 0; for (int j = 0; j <= 30; j++) { for (int i = 0; i <= 30; i++) { if (i + a <= 30) { Check[i + a] = min(Check[i] + 1, Check[i + a]); } if (i + b <= 30) { Check[i + b] = min(Check[i] + 1, Check[i + b]);; } if (i + c <= 30) { Check[i + c] = min(Check[i] + 1, Check[i + c]);; } } } return Check[V0] + Check[V1] + Check[V2] + Check[V3]; }