题目描述
题目描述
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 t1,a1,a2,b1,b2,c1,c2; cin>>t1>>a1>>a2>>b1>>b2>>c1>>c2; int f1=t1,f2=t1,f3=t1; if(t1>=a1) f1=t1-a2; if(t1>=b1) f2=t1-b2; if(t1>=c1) f3=t1-c2; cout<<min(f1,min(f2,f3)); return 0; }