View Code of Problem 3699

#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.


Back to problem 3699