70pts玄关求调!!!
查看原帖
70pts玄关求调!!!
1008121
thief_kid楼主2024/10/15 16:15
#include <bits/stdc++.h>
using namespace std;
#define sort stable_sort
int n, c;
struct node {
	int id, num;
}a[100010];
bool cmp(node x, node y) {
	if (x.num != y.num) return x.num > y.num;
	return x.id < y.id;
}
signed main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n >> c;
	for (int i = 1; i <= c; i++) {
		cin >> a[i].num;
		a[i].id = i;
	}
	sort(a + 1, a + 1 + c, cmp);
	for (int i = 1; i <= c; i++) {
		if (a[i].num == 0) continue;
		for (int j = i + 1; j <= c; j++) {
			if (a[i].num > a[j].num) {
				for (int k = 1; k <= a[j].num; k++) cout << a[i].id << " " << a[j].id << '\n';
				a[i].num -= a[j].num;
				a[j].num = 0;
			} else {
				for (int k = 1; k <= a[i].num; k++) cout << a[i].id << " " << a[j].id << '\n';
				a[j].num -= a[i].num;
				a[i].num = 0;
			}
			if (a[i].num == 0) break;
		}
	}
	return 0;
}

70pts记录

2024/10/15 16:15
加载中...