P1286大佬求助!!!
查看原帖
P1286大佬求助!!!
231022
1234567890regis楼主2023/9/23 21:22

服了,世界上最水的蓝题为什么39分做不对? 代码如下:

#include <iostream>
#include <algorithm>
#define int long long
#define MAXN 10
using namespace std;

signed main()
{
    int n;
    while (cin >> n)
    {
        int a[MAXN][MAXN];
        int res[MAXN];
        int sum = 0;
        for (int i=0;i<n;i++) for (int j = 0;j<n;j++)
        {
            if (i == j) 
            {
                a[i][j] = 0;
                continue;
            }
            else if (i > j) continue;
            cin >> a[i][j];
            a[j][i] = a[i][j];
            sum += a[i][j];
        }
        if (sum % (n-1) != 0)
        {
            cout << "Impossible" << endl;
            continue;
        }
        sum /= (n-1);
        bool flag = true;
        for (int i=0;i<n;i++)
        {
            int part_sum = 0;
            for (int j=0;j<n;j++)
            {
                if (i != j) part_sum += a[i][j];
            }
            part_sum -= sum;
            if (part_sum % (n-2) != 0)
            {
                flag = false;
                break;
            }
            res[i] = part_sum / (n-2);
        }
        if (!flag)
        {
            cout << "Impossible" << endl;
            continue;
        }
        sort(res, res+n);
        for (int i=0;i<n;i++) cout << res[i] << " ";
        cout << endl;
    }
}

感谢所有回复的dalao们!

2023/9/23 21:22
加载中...