显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, b, f[300], s[300], d[300];
bool ok[300][300] = {0};
int main() {
freopen("snowboots_silver_18feb.in", "r", stdin);
freopen("snowboots_silver_18feb.out", "w", stdout);
cin >> n >> b;
for(int i = 1; i <= n; i ++) {
cin >> f[i];
}
for(int i = 1; i <= b; i ++) {
cin >> s[i] >> d[i];
}
ok[1][1] = 1;
for(int i = 1; i <= n; i ++) {
for(int j = 1; j <= b; j ++) {
if(ok[i][j]) {
for(int k = j; k <= b; k ++) {
if(f[i] <= s[k]) {
for(int l = i + 1; l <= min(n, i + d[k]);l ++) {
if(s[k] >= f[l]) {
ok[l][k]=1;
}
}
}
}
}
}
}
for(int i = 1; i <= b; i ++) {
if(ok[n][i]) {
cout << i - 1 << endl;
return 0;
}
}
return 0;
}