QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#188575 | #7228. Random Points on the Circle | jiangly (Lingyu Jiang) | WA | 64ms | 3620kb | C++20 | 2.4kb | 2023-09-26 02:02:07 | 2023-09-26 02:02:07 |
Judging History
answer
#include <bits/stdc++.h>
using i64 = long long;
constexpr int L = 1 << 30;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n, k;
std::cin >> n >> k;
int seed, add;
std::cin >> seed >> add;
std::vector<int> a(n);
for (int i = 0; i < n; i++) {
seed = (1LL * seed * 239017 + add) % L;
a[i] = seed;
}
std::sort(a.begin(), a.end());
if (n >= 100) {
a.resize(2 * n);
for (int i = 0; i < n; i++) {
a[n + i] = a[i] + L;
}
std::vector<i64> pre(2 * n + 1);
for (int i = 0; i < 2 * n; i++) {
pre[i + 1] = pre[i] + a[i];
}
i64 ans = 1E18;
for (int i = 0; i < n / k; i++) {
i64 res = 0;
for (int j = i; j < n; j += n / k) {
int l = j, r = l + n / k;
int m = (l + r - 1) / 2;
res += 1LL * a[m] * (m - l) - (pre[m] - pre[l]);
res += (pre[r] - pre[m]) - 1LL * a[m] * (r - m);
}
ans = std::min(ans, res);
}
std::cout << ans << "\n";
return 0;
}
std::vector f(n, std::vector<i64>(n + 1));
for (int i = 0; i < n; i++) {
for (int j = 1; j <= n; j++) {
f[i][j] = 1E18;
for (int x = 0; x < j; x++) {
i64 res = 0;
for (int y = 0; y < j; y++) {
int d = std::abs(a[(i + x) % n] - a[(i + y) % n]);
res += std::min(d, L - d);
}
f[i][j] = std::min(f[i][j], res);
}
}
}
auto ans = *std::ranges::partition_point(std::ranges::iota_view(0LL, i64(1E18)),
[&](i64 x) {
bool ok = false;
for (int i = 0; i < n; i++) {
if (!ok) {
int l = 0;
int v = 0;
while (l < n) {
int r = l;
while (r < n && f[(i + l) % n][r + 1 - l] <= x) {
r++;
}
l = r;
v++;
}
if (v <= k) {
ok = true;
}
}
}
return !ok;
});
std::cout << ans << "\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3432kb
input:
10 2 13 123
output:
626098570
result:
ok 1 number(s): "626098570"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3452kb
input:
10 3 13 123
output:
302532222
result:
ok 1 number(s): "302532222"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
10 10 13 123
output:
0
result:
ok 1 number(s): "0"
Test #4:
score: 0
Accepted
time: 1ms
memory: 3488kb
input:
10 3 363606310 110949573
output:
322659618
result:
ok 1 number(s): "322659618"
Test #5:
score: 0
Accepted
time: 3ms
memory: 3488kb
input:
10 4 781726900 293540865
output:
180377100
result:
ok 1 number(s): "180377100"
Test #6:
score: 0
Accepted
time: 58ms
memory: 3592kb
input:
99 1 631536274 125123859
output:
25113339950
result:
ok 1 number(s): "25113339950"
Test #7:
score: 0
Accepted
time: 64ms
memory: 3552kb
input:
99 98 986776257 679440378
output:
10208
result:
ok 1 number(s): "10208"
Test #8:
score: 0
Accepted
time: 62ms
memory: 3588kb
input:
99 2 773705026 882748599
output:
6078581409
result:
ok 1 number(s): "6078581409"
Test #9:
score: 0
Accepted
time: 62ms
memory: 3512kb
input:
99 97 1066064403 735048522
output:
203934
result:
ok 1 number(s): "203934"
Test #10:
score: 0
Accepted
time: 61ms
memory: 3572kb
input:
99 3 790112566 236340147
output:
2661879431
result:
ok 1 number(s): "2661879431"
Test #11:
score: 0
Accepted
time: 62ms
memory: 3592kb
input:
99 96 1019591337 460365297
output:
440848
result:
ok 1 number(s): "440848"
Test #12:
score: 0
Accepted
time: 62ms
memory: 3568kb
input:
99 4 680758893 333382150
output:
1639918184
result:
ok 1 number(s): "1639918184"
Test #13:
score: 0
Accepted
time: 62ms
memory: 3620kb
input:
99 95 847357058 929132527
output:
358904
result:
ok 1 number(s): "358904"
Test #14:
score: 0
Accepted
time: 61ms
memory: 3544kb
input:
99 5 445644008 100132784
output:
988115184
result:
ok 1 number(s): "988115184"
Test #15:
score: 0
Accepted
time: 62ms
memory: 3484kb
input:
99 94 549361567 1067608389
output:
555789
result:
ok 1 number(s): "555789"
Test #16:
score: -100
Wrong Answer
time: 0ms
memory: 3508kb
input:
100 10 84767911 610333873
output:
2444552010
result:
wrong answer 1st numbers differ - expected: '251560975', found: '2444552010'