蒟蒻代码求debug
查看原帖
蒟蒻代码求debug
1420422
Lyzc0dr楼主2025/1/11 19:13
#include <bits/stdc++.h>
#define ll long long
#define IOS ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
using namespace std;

int m, n;
vector<pair<int, int>> swaps;

struct node {
	int a, b;
};

node arr[1001][1001];
ll a[100010];

ll calc(int r) {
	ll _a = 0, _b = 0, _1 = 0, _2 = 0;
	for (int i = 1; i <= m; i++) {
		_a += arr[r][i].a;
		_b += arr[r][i].b;
	}
	for (int i = 1; i <= m; i++) {
		_1 += (arr[r][i].a - _a / m) * (arr[r][i].a - _a / m);
		_2 += (arr[r][i].b - _b / m) * (arr[r][i].b - _b / m);
	}
	return _1 / m + _2 / m;
}

int main() {
	IOS
	cin >> m >> n;

	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> arr[i][j].a;
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> arr[i][j].b;
		}
	}

	for (int i = 1; i <= n; i++) {
		a[i] = calc(i);
	}

	for (int i = 1; i <= n; i++) {
		int maxi = i;
		for (int j = i; j <= n; j++) {
			if (a[maxi] < a[j]) {
				maxi = j;
			}
		}
		if (maxi != i) {
			swaps.push_back({i, maxi});
			swap(a[maxi], a[i]);
		}
	}

	cout << swaps.size() << "\n";
	for (auto &p : swaps) {
		cout << p.first << " " << p.second << "\n";
	}

	return 0;
}
2025/1/11 19:13
加载中...