QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#598648 | #8034. Ban or Pick, What's the Trick | Hanoist | WA | 1ms | 7892kb | C++14 | 2.0kb | 2024-09-28 22:48:02 | 2024-09-28 22:48:04 |
Judging History
answer
#include<bits/stdc++.h>
const int N = 1e5+5;
using i64 = long long;
int n, m, a[N], b[N]; i64 f[N][11][11], vis[N][11][11];
signed main() {
scanf("%d%d", &n ,&m); m = std::min(m, n);
for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for(int i = 1; i <= n; ++i) scanf("%d" ,&b[i]);
std::sort(a + 1, a + n +1);
std::sort(b + 1, b + n + 1);
std::reverse(a + 1, a +n + 1);
std::reverse(b + 1, b+ n + 1);
//memset(f, 0xcf, sizeof f);
// for(int i = 0; i <= n; ++i)
// for(int j = 0; j <= m; ++j)
// for(int k = 0; k <= m; ++k)
// f[i][j][k] = -2e9;
f[0][0][0] = 0;
for(int i = 1; i <= n; ++i)
for(int j = 0; j <= std::min(i, m); ++j)
for(int k = 0; k <= std::min(i, m); ++k) {
i64 num = 1e18;
if(j) {
if(k && i + j - k <= n && i + k - j <= n && !vis[i - 1][j - 1][k - 1]) num = std::min(num, f[i - 1][j - 1][k - 1] + a[i + j - k] - b[i + k - j]);
if(k <= i - 1 && i + j - k - 1 <= n && !vis[i - 1][j - 1][k]) num = std::min(num, f[i - 1][j - 1][k] + a[ i + j - k - 1]);
if(num != 1e18) f[i][j][k] = std::max(f[i][j][k], num);
}
i64 num1 = 1e18;
if(k && j <= i - 1 && i + k - j - 1 <= n && !vis[i - 1][j][k - 1]) num1 = std::min(num1, f[i - 1][j][k - 1] - b[i + k - j - 1]);
if(j <= i -1 && k <= i -1 && !vis[i - 1][j][k] ) num1 = std::min(num1, f[i -1][j][k]);
if(num1 != 1e18) f[i][j][k] = std::max(f[i][j][k], num1);
if(num == 1e18 && num1 == 1e18) vis[i][j][k] = 1;
}
i64 ans = -1e18;
for(int i = 0; i <= m; ++i) {
i64 num = 1e18;
for(int j = 0; j <= m; ++j){
//printf("%lld ", f[n][i][j]);
num = std::min(num, f[n][i][j]);
}
// puts("");
ans = std::max(ans, num);
}
printf("%lld\n", ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5912kb
input:
2 1 3 6 2 4
output:
2
result:
ok single line: '2'
Test #2:
score: 0
Accepted
time: 1ms
memory: 5848kb
input:
4 1 1 3 5 7 2 4 6 8
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 0ms
memory: 7892kb
input:
4 2 4 6 7 9 2 5 8 10
output:
3
result:
ok single line: '3'
Test #4:
score: -100
Wrong Answer
time: 1ms
memory: 5840kb
input:
10 5 42 13 60 42 100 82 22 98 14 55 100 41 89 24 65 38 69 26 37 16
output:
32
result:
wrong answer 1st lines differ - expected: '41', found: '32'