<center style="color&#58;rgba&#40;0&#44;0&#44;0&#44;&#46;87&#41;&#59;font&#45;family&#58;Lato&#44; &#39;Helvetica Neue&#39;&#44; Arial&#44; Helvetica&#44; sans&#45;serif&#59;font&#45;size&#58;14px&#59;">

制作门框

时间限制: 1 Sec   内存限制: 128 MB
</center>

题目描述

zc有很多根长度为n的木板,他想用这些木板做两个完全一样的门框。每个门框由两根竖直放置的木板和一根水平放置的木板组成。竖直放置的木板长度为a,水平放置的木板长度为b,这些木板必须完整,不能拼接而成。

请你计算最少需要多少木板来制作这两个门框。zc可以将木板任意分割,但是无法将木板拼接起来。

输入

第一行包含一个整数T1<T<100),代表有T组数据。

每组数据有三行,第一行为一个整数n1<=n<=1000)代表木板长度。

第二行为一个整数a,代表竖直放置木板的长度。

第三行为一个整数b,代表水平放置木板的长度。

输出

输出制作这两个门框的最小木板数量。

样例输入

2
8
1
2
5
3
4

样例输出

1
6

解题思路

贪心算法,一点一点的选,选过之后变为零。具体见代码:

#include <stdio.h>
int main()
{
    int t, a, b, n, m, i, j, s[10];
    scanf("%d", &t);
    while (t--)
    {
        scanf("%d%d%d", &n, &a, &b);
        s[0] = s[2] = s[3] = s[5] = a;
        s[1] = s[4] = b;
        for (i = 0; ; i++)
        {
            m = n;
            for (j = 0; j < 6; j++)
            {
                if (m >= s[j])
                {
                    m -= s[j];
                    s[j] = 0;
                }
            }
            if (m == n)
                break;
        }
        printf("%d\n", i);
    }
    return 0;
}