Ants

# include <cstdio>
#include <algorithm>

const int MAX_N = 100;

int L, n, x[MAX_N];


void solve() {
    int minT = 0;
    for (int i = 0; i < n; ++i) {
        minT = std::max(minT, std::min(x[i], L - x[i]));
    }

    int maxT = 0;
    for (int i = 0; i < n; ++i) {
        maxT = std::max(maxT, std::max(x[i], L - x[i]));
    }
    printf("%d %d\n", minT, maxT);
}


int main() {
    int cases;
    scanf("%d", &cases);
    while (cases-- > 0) {
        scanf("%d%d", &L, &n);
        for (int i = 0; i < n; ++i) {
            scanf("%d", x + i);
        }
        solve();
    }
    return 0;
}

 

抽签问题:从若干个数中抽取4个数使它们的和是k。即前面的3sum4sum问题。

k1 + k2 + k3 + k4 = m变换成:k1 + k2 = m - k3 - k4