为什么这样写可以 A
查看原帖
为什么这样写可以 A
421781
liuzimingc楼主2021/10/15 08:38

RT。

#include <bits/stdc++.h>
using namespace std;

int n, X, Y, ans;
struct node {
	int x, y, id;
} a[1005];

bool cmp(node a, node b) {
	return min(a.x, b.y) != min(a.y, b.x) ? min(a.x, b.y) < min(a.y, b.x) : (a.y < b.y);
}
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> a[i].x, a[i].id = i;
	for (int i = 1; i <= n; i++) cin >> a[i].y;
	stable_sort(a + 1, a + 1 + n, cmp);
	for (int i = 1; i <= n; i++) {
		X += a[i].x; Y = max(X, Y) + a[i].y;
	}
	cout << Y << endl;
	for (int i = 1; i <= n; i++)
		cout << a[i].id << (i == n ? "" : " ");
	return 0;
}

有什么严格证明吗?/yiw

2021/10/15 08:38
加载中...