题目描述
题目描述
33DAI 肚子饿了,于是在“饱了么”外卖平台点了一份 nn 元的黄焖鸡米饭。在付款时,33DAI 可以从店家提供的三个满减红包中选择一个可用红包使用。
- 第一个红包可以在金额大于等于 a1a1 元时使用,可以提供 b1b1 元的优惠(即总价减少 b1b1 元)。
- 第二个红包可以在金额大于等于 a2a2 元时使用,可以提供 b2b2 元的优惠(即总价减少 b2b2 元)。
- 第三个红包可以在金额大于等于 a3a3 元时使用,可以提供 b3b3 元的优惠(即总价减少 b3b3 元)。
请问 33DAI 怎么选择可以使得最终付款最少。
输入格式
第一行一个整数 nn。
接下来三行,每行两个正整数,分别是 a1,b1,a2,b2,a3,b3a1,b1,a2,b2,a3,b3。
输出格式
输出一行一个正整数,即 33DAI 最少花费的钱。
输入1:
33
20 15
30 10
50 49
输出1:
18
输入2:
33
40 1
40 2
40 3
输出2:
33
样例解释
33DAI 满足前两个红包的使用规则,选择第一个红包优惠最多,最后付款 33−15=1833−15=18 元。
数据规模与约定
对于 100%100% 的数据,保证:
- 1≤n,a1,b1,a2,b2,a3,b3≤1041≤n,a1,b1,a2,b2,a3,b3≤104
- a1≥b1a1≥b1,a2≥b2a2≥b2,a3≥b3a3≥b3
- n≥b1n≥b1,n≥b2n≥b2,n≥b3n≥b3
子任务划分:
- 子任务 1(30 分):保证 n<a1n<a1,n<a2n<a2,n<a3n<a3。
- 子任务 2(30 分):保证 b1=b2=b3b1=b2=b3。
- 子任务 3(40 分):没有特殊限制。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a1,b1,a2,b2,a3,b3;
cin>>n>>a1>>b1>>a2>>b2>>a3>>b3;
int a=n,b=n,c=n,m=0;
if(n>=a1)
{
a=n-b1;
}
if(n>=a2)
{
b=n-b2;
}
if(n>=a3)
{
c=n-b3;
}
m=min(a,min(b,c));
cout<<m;
return 0;
}