牛客網-2018 美團 CodeM 程式設計大賽-資格賽-1-下單
阿新 • • 發佈:2019-01-03
描述
題解
貪心,因為只能一次購買,所以要麼全部按原價求和然後算滿減,要麼能特價的全部算特價,取小的值即可。
程式碼
#include <iostream>
using namespace std;
const int MAXN = 15;
int n, m;
int a[MAXN], b[MAXN];
int c[MAXN], w[MAXN];
int main(int argc, const char * argv[])
{
while (cin >> n >> m)
{
double sum = 0, ans1 = 0;
for (int i = 1; i <= n; i++)
{
cin >> a[i] >> b[i];
sum += a[i];
if (b[i])
{
ans1 += a[i] * 0.8;
}
else
{
ans1 += a[i];
}
}
double ans2 = sum;
for (int i = 1; i <= m; i++)
{
cin >> c[i] >> w[i];
if (sum >= c[i] && ans2 > sum - w[i])
{
ans2 = sum - w[i];
}
}
if (ans1 > ans2)
{
printf ("%.2f\n", ans2);
}
else
{
printf("%.2f\n", ans1);
}
}
return 0;
}