Problem Description
学校的洗衣机有4种模式:1、单脱水;2、快速洗;3、标准洗;4、大物洗。分别对应的价格是1、2、3、4元。
其中——
单脱水最多脱水3件衣服(无清洗功能);
快速洗最多3件(脱水+清洗);
标准洗最多6件(脱水+清洗);
大物洗最多洗10件(脱水+清洗)。
温馨提醒:以上可以看出,洗衣服中包含脱水功能。
现在XZ累积了n件衣服要处理,其中有m(m<=n)件只需要脱水的,另外n-m件必须清洗。问最少需要几元能把所有衣服处理完?
其中——
单脱水最多脱水3件衣服(无清洗功能);
快速洗最多3件(脱水+清洗);
标准洗最多6件(脱水+清洗);
大物洗最多洗10件(脱水+清洗)。
温馨提醒:以上可以看出,洗衣服中包含脱水功能。
现在XZ累积了n件衣服要处理,其中有m(m<=n)件只需要脱水的,另外n-m件必须清洗。问最少需要几元能把所有衣服处理完?
Input
输入数据第一行是一个正整数T(<=30),表示测试数据组数。
接下来T行,每行两个正整数 n m (n,m <=1e6)。
接下来T行,每行两个正整数 n m (n,m <=1e6)。
Output
对于每组数据,输出一行答案。
Sample Input
3 5 2 20 15 100 3
Sample Output
3 8 40
//洗衣服 1003
//Problem Description
//学校的洗衣机有4种模式:1、单脱水;2、快速洗;3、标准洗;4、大物洗。分别对应的价格是1、2、3、4元。
//
//其中——
//单脱水最多脱水3件衣服(无清洗功能);
//快速洗最多3件(脱水+清洗);
//标准洗最多6件(脱水+清洗);
//大物洗最多洗10件(脱水+清洗)。
//温馨提醒:以上可以看出,洗衣服中包含脱水功能。
//
//现在XZ累积了n件衣服要处理,其中有m(m<=n)件只需要脱水的,另外n-m件必须清洗。问最少需要几元能把所有衣服处理完?
//
//
//Input
//输入数据第一行是一个正整数T(<=30),表示测试数据组数。
//接下来T行,每行两个正整数 n m (n,m <=1e6)。
//
//
//Output
//对于每组数据,输出一行答案。
//
//
//Sample Input
//3
//5 2
//20 15
//100 3
//
//
//Sample Output
//3
//8
//40
//这题惭愧啊,一直wa,这里是别人代码,思路和别人一样^~^
//贪心法直接来即可
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <set>
const double PI = acos(-1.0);
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m,sum=0;
scanf("%d%d",&n,&m);
m = n-m;//m是要洗的衣服
n-=m;//n是要脱水的衣服
int t=m/10;//先按方案4处理要洗衣服,剩下小于10件
sum+=t*4;//加上价格
m%=10;
if(n+m>=10&&m)//如果有要洗的衣服+要脱水的》=10
{//满足先处理要洗的
sum+=4;
n = n-(10-m);
m = 0;
}
if(m>6)//要洗的衣服大于6件
{
n = n-(10-m);
sum+=4;
}
else if(m>3)//要洗的衣服大于3件
{
sum+=3;
n = n-(6-m);
}
else if(m>0)//有要洗的衣服
{
sum+=2;
n = n-(3-m);
}
sum+=(n+2)/3;//这告诉是脱水的衣服,我没有加2,直接除了,然后就dead了,蓝瘦
printf("%d\n",sum);
}
return 0;
}