Easy Construction
思路:如果(n∗(n+1)/2)%n!=k则无解。

若n为奇数,序列为{n, 1, n-1, 2, n-2, ...} 。
如果n是偶数,序列为{n, n/2, 1, n-1, 2, n-2, ...} 。

#include <iostream>
using namespace std;
int main()
{
    int n,k;
    scanf("%d%d", &n, &k);
    if (k != (n * (n + 1) / 2) % n)
        printf("%d\n",-1);
    else
    {

        for (int i = 1; i * 2 < n; i ++)
            printf("%d %d ", i, n - i);
       if(n%2==0)    
       printf("%d ",k);
        printf("%d",n);
    }
    return 0;
}

Combination of Physics and Maths
思路:最大一定存在于某一列之和中,枚举每一列即可。

#include <iostream>
using namespace std;
int t, n, m, a[210][210];

int main() {
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d", &n, &m);
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                scanf("%d", &a[i][j]);
            }
        }
        double ans = 0;
        for (int j = 0; j < m; j++) {
            double sum = 0;
            for (int i = 0; i < n; i++) {
                sum += a[i][j];
                ans =max(ans, 1.0*sum / a[i][j]);
            }
        }
        printf("%.8f\n", ans);
    }
    return 0;
}