結果
| 問題 |
No.27 板の準備
|
| コンテスト | |
| ユーザー |
hiyokko2
|
| 提出日時 | 2016-08-05 18:41:40 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 72 ms / 5,000 ms |
| コード長 | 935 bytes |
| コンパイル時間 | 2,135 ms |
| コンパイル使用メモリ | 157,672 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-12-26 12:37:16 |
| 合計ジャッジ時間 | 3,829 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 18 |
ソースコード
#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;i++)
//#define int long long
using namespace std;
#define INF 999999
int A, B, C;
int dp[31];
int V0, V1, V2, V3;
int rec(int Vi)
{
//printf("A = %d, B = %d, C = %d\n", A, B, C);
if (dp[Vi] != -1) return dp[Vi];
if (A == Vi || B == Vi || C == Vi) return dp[Vi] = 1;
int ret = INF;
for (int i=1; i<=Vi-1; i++)
{
ret = min(ret, rec(i) + rec(Vi-i));
}
return dp[Vi] = ret;
}
signed main()
{
//rep(i,31) dp[i] = -1;
cin >> V0 >> V1 >> V2 >> V3;
/*
A = 28; B = 29; C = 30;
printf("rec(%d) = %d\n", V0, rec(V0));
printf("rec(%d) = %d\n", V1, rec(V1));
printf("rec(%d) = %d\n", V2, rec(V2));
printf("rec(%d) = %d\n", V3, rec(V3));
*/
int ans = INF;
for (A=1; A<=30; A++)
{
for (B=1; B<=30; B++)
{
for (C=1; C<=30; C++)
{
rep(i,31) dp[i] = -1;
ans = min(ans, rec(V0) + rec(V1) + rec(V2) + rec(V3));
}
}
}
cout << ans << endl;
}
hiyokko2