芹菜本菜 • 16天前
using namespace std; int n;
struct o {
int sum, l;
} a[100001];
bool aa(o a, o b) {
return a.l > b.l;
} vectorg;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
a[i].sum = i;
cin >> a[i].l;
}
sort(a + 1, a + 1 + n, aa);
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= a[i].l + i; j++) {
a[j].l--;
if (a[j].l < 0) {
cout << "false";
return 0;
}
g.push_back({a[i].sum, a[j].sum});
}
sort(a + i + 1, a + n + 1, aa);
}
cout << "true" << endl;
for (int i = 0; i < g.size(); i++) {
cout << g[i].sum << " " << g[i].l << endl;
}
return 0;
}
评论:
请先登录,才能进行评论