#include <algorithm> #include <cctype> #include <climits> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <set> #include <stack> #include <string> #include <vector> using namespace std; int main(void) { int L, N; while (cin >> L >> N) { int k[N], f[N]; memset(k, 0, sizeof(k)); memset(f, 0, sizeof(f)); for (int i = 0; i < N; i++) cin >> k[i]; for (int i = 0; i < N; i++) cin >> f[i]; int mmin = 100000; int min_pos = 0; for (int i = 0; i <= L; i++) { int sum = 0; for (int j = 0; j < N; j++) sum += f[j] - abs(i - k[j]) > 0 ? f[j] - abs(i - k[j]) : 0; if (sum < mmin) { mmin = sum; min_pos = i; } } cout << min_pos << endl << mmin << endl; } } |
Double click to view unformatted code.