#include<bits/stdc++.h>
using namespace std;
#define task "a"
#define se second
#define fi first
#define ll long long
#define ii pair<int, int>
const long mxN = 1e4 + 7, inf = 1e9 + 7;
int n, m, a[mxN], dp[mxN];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen(task".INP", "r", stdin);
//freopen(task".OUT", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
dp[i] = inf;
}
sort(a + 1, a + n + 1, greater<int>());
for (int i = 1; i <= m; i++)
{
ii b;
cin >> b.fi >> b.se;
for (int j = n; j >= 0; j--)
dp[min(n, j + b.fi)] = min(dp[min(n, j + b.fi)], dp[j] + b.se);
for (int j = n; j > 0; j--)
dp[j - 1] = min(dp[j - 1], dp[j]);
}
int pre = 0, ans = 0;
for (int i = 0; i <= n; i++)
{
pre += a[i];
ans = max(ans, pre - dp[i]);
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |