#include <algorithm>
#include <iostream>
using namespace std;
struct Man {
string s;
int x;
} a[3500];
bool cmp( Man a, Man b ) {
return a.x < b.x;
}
int ans[3500];
int main() {
ios::sync_with_stdio( false );
int n;
cin >> n;
for ( int i = 1; i <= n; i++ ) {
cin >> a[i].s >> a[i].x;
}
sort( a + 1, a + n + 1, cmp );
bool flag = false;
for ( int i = 1; i <= n; i++ ) {
flag |= a[i].x >= i;//a[i].x>=i显然不正确
ans[i] = i - a[i].x;//ans[i]是前面比他矮的人
for ( int j = 1; j < i; j++ ) {
if ( ans[j] >= ans[i] ) {
ans[j]++;
}
}
}
if ( flag ) {
cout << -1 << endl;
return 0;
}
for ( int i = 1; i <= n; i++ ) {
cout << a[i].s << " " << ans[i] << endl;
}
return 0;
}
版权声明:本文是原创文章,版权归 星雾月雨 所有。
本文链接:https://www.ariels.xyz/archives/470.html
本站所有下方标记为「允许规范转载」的原创文章均采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。
您可以自由地转载,但请务必注明文章来源且不可用于商业目的。