#include <stdio.h> int main() { int l, n; while (scanf("%d %d", &l, &n) != EOF) { int k[2001] = { 0 }; int f[2001] = { 0 }; int damage[2001] = { 0 }; for (int i = 0;i < n;i++) { scanf("%d", &k[i]); } for (int i = 0;i < n;i++) { scanf("%d", &f[k[i]]); } for (int i = 0;i <= l;i++) { if (f[i] != 0) { int start = i - f[i]; int end = i + f[i]; if (start < 0) { start = 0; } if (end > l) { end = l; } for (int j = start;j <= end;j++) { damage[j] += f[i] - (i - j); } } } int min=damage[0]; int index=0; for (int i = 0;i <= l;i++) { if (damage[i] < min) { min = damage[i]; index = i; } } printf("%d\n%d\n", index, min); } } |
Double click to view unformatted code.