題目描述:
站臺的長度是
如果第
數據範圍:
題解:
#include<bits/stdc++.h>
typedef long long ll;
const int N = 305;
int n, m, cnt;
ll L, P[N], D[N], S[N * N * 2];
void add(int x) {if (x >= 0 && x <= L - D[n]) S[++cnt] = x;}
int main() {
scanf("%lld%d", &L, &m); L <<= 1;
for (int i = 1; i <= m; i++)
scanf("%lld", &P[i]), P[i] <<= 1;
scanf("%d", &n);
for (int i = 2; i <= n; i++)
scanf("%lld", &D[i]), D[i] <<= 1;
for (int i = 1; i <= m; i++)
for (int j = 1; j < n; j++)
add(P[i] - (D[j] + D[j + 1]) / 2);
add(0); add(L - D[n]);
std::sort(S + 1, S + cnt + 1);
ll ans = 0, det;
for (int k = 1; k <= cnt; k++) {
int p = 1;
ll tans = 0;
for (int i = 1; i <= m; i++) {
while (p < n && abs(D[p + 1] + S[k] - P[i]) < abs(D[p] + S[k] - P[i])) p++;
tans += abs(D[p] + S[k] - P[i]);
}
if (tans > ans)
ans = tans,
det = S[k];
}
printf("%.1f %.1f\n", det * 0.5, ans * 0.5);
return 0;
}
如有侵權,請聯繫作者刪除。