QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#213156 | #6632. Minimize Median | dread | WA | 51ms | 5660kb | C++14 | 1.2kb | 2023-10-14 12:35:24 | 2023-10-14 12:35:24 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
const int N = 1e6 + 4;
int n, m, k, a[N], c[N];
void solve() {
std::cin >> n >> m >> k;
for(int i = 1; i <= n; ++i) std::cin >> a[i];
for(int i = 1; i <= m; ++i) std::cin >> c[i];
std::sort(a + 1, a + n + 1);
c[m + 1] = 2e9;
for(int i = 1; i <= m; ++i) {
int t = 2;
for(int j = i * 2; j <= m; j += i, ++t) {
c[j] = std::min(c[j], c[i] + c[t]);
}
c[m + 1] = std::min(c[m + 1], c[i] + c[t]);
}
// for(int i = 1; i <= m; ++i) std::cout << c[i] << " \n"[i == m];
for(int i = m; i >= 1; --i) c[i] = std::min(c[i], c[i + 1]);
auto check = [&](int mid) -> bool {
long long re = 0;
for(int i = 1; i <= n / 2 + 1; ++i) {
if(a[i] > mid) re += c[a[i] / (mid + 1) + 1];
}
return re <= k;
} ;
int l = 0, r = a[n / 2 + 1];
while(l < r) {
int mid = (l + r) >> 1;
if(check(mid)) {
r = mid;
} else {
l = mid + 1;
}
}
std::cout << r << '\n';
}
signed main() {
std::cin.tie(nullptr) -> sync_with_stdio(false);
int T;
std::cin >> T;
while(T--) solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 5660kb
input:
3 3 5 0 2 5 2 3 2 4 6 13 3 5 3 2 5 3 3 2 4 6 13 3 5 6 2 5 2 3 2 4 6 13
output:
2 2 1
result:
ok 3 number(s): "2 2 1"
Test #2:
score: -100
Wrong Answer
time: 51ms
memory: 5460kb
input:
100000 5 10 5 3 7 1 10 10 11 6 11 6 1 8 9 1 3 1 5 6 51 2 2 2 5 1 42 61 26 59 100 54 5 10 76 7 5 8 4 7 97 4 44 83 61 45 24 88 44 44 5 8 90 1 1 5 1 3 35 15 53 97 71 83 26 7 5 3 52 1 1 3 1 1 22 6 93 5 6 28 6 6 1 3 1 9 31 2 19 10 27 5 8 31 3 6 2 1 2 32 29 13 7 57 34 9 5 5 6 75 3 3 4 5 4 40 56 38 60 17 3...
output:
0 2 0 0 0 0 0 0 3 4 0 0 0 0 1 1 0 0 0 0 1 1 0 2 2 0 0 0 0 0 2 0 0 1 2 2 0 1 0 0 0 0 1 0 2 4 1 1 0 0 2 0 0 7 1 1 0 0 1 1 1 1 1 0 1 0 0 2 1 0 6 3 0 0 1 0 2 0 0 3 0 1 0 1 0 2 0 0 0 0 1 2 1 4 0 0 1 0 0 0 1 2 2 1 2 2 0 1 1 0 0 0 0 0 1 2 1 4 1 0 4 1 2 1 0 0 0 0 1 2 1 0 0 2 3 1 0 1 1 1 0 1 5 0 1 2 0 2 0 0 ...
result:
wrong answer 34th numbers differ - expected: '0', found: '1'