选出最大的所有小于等于总价格的优惠价格即可。
C++
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, m, ans = 0;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int u, v;
cin >> u >> v;
if (u <= n) ans = max(ans, v);
}
cout << n - ans << endl;
return 0;
}
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int ans = 0;
for (int i = 1; i <= n; i++) {
int u = scanner.nextInt();
int v = scanner.nextInt();
if (u <= n) {
ans = Math.max(ans, v);
}
}
System.out.println(n - ans);
}
}
python
n, m = map(int, input().split())
ans = 0
for i in range(1, n + 1):
u, v = map(int, input().split())
if u <= n:
ans = max(ans, v)
print(n - ans)
题目描述
小红在点外卖,他在小红学算法这个公众号领了m张不可重叠使用的满减券,问点这份外卖最少花多少钱。
输入描述
第一行是两个整数n,m,表示外卖总价格为n,有m张优惠券。
接下来m行,每行两个整数a,b,表示满a减b。
保证 1≤n≤100000, 1≤m≤200, 1≤b≤a≤100000, n≤a
输出描述
一行,一个整数,表示最少花的钱
样例
输入
10 3
30 50
20 30
5 5
输出
5