无了语了。。。
查看原帖
无了语了。。。
537520
DESTRUCTION_3_2_1楼主2022/8/21 21:24
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int n, x;
string s;
struct node{
	string name;
	int sum;
}a[MAXN], b[MAXN];
inline int read(){
	int X=0,w=0;
	char ch=0;
	while(!isdigit(ch))
	{
		w|=ch=='-';
		ch=getchar();
	}
	while(isdigit(ch))
	{
		X=(X<<3)+(X<<1)+(ch^48);
		ch=getchar();
	}
	return w?-X:X;
}
inline void write(int x){
	if(x<0)x=~x+1,putchar('-');
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int cmp(node x, node y){
	if (x.sum != y.sum)
		return x.sum > y.sum;
	return x.name < y.name;
}
signed main(void)
{
	//freopen("input.in","r",stdin);
	//freopen("output.out","w",stdout);
	ios::sync_with_stdio(0);
	n = read();
	for (int i=1; i<=n; i++)
	{
		cin >> a[i].name;
		b[i].name = a[i].name;
		for (int j=1; j<=5; j++)
		{
			cin >> x;
			a[i].sum += x;
		}
		b[i].sum = a[i].sum;
	}
	for (int i=1; i<=n; i++)
	{
		s = a[i].name;
		a[i].sum += 500;
		sort (a + 1, a + 1 + n, cmp);
		for (int j=1; j<=n; j++)
		{
			if (a[j].name == s)
			{
				cout << j << " ";
				break;
			}
		}
		for (int j=1; j<=n; j++)
		{
			a[j].name = b[j].name;
			a[j].sum = b[j].sum + 500;
		}
		a[i].sum -= 500;
		sort (a + 1, a + 1 + n, cmp);
		for (int j=1; j<=n; j++)
		{
			if (a[j].name == s)
			{
				cout << j << endl;
				break;
			}
		}
		for (int j=1; j<=n; j++)
		{
			a[j].name = b[j].name;
			a[j].sum = b[j].sum;
		}
	}
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

数据下载后:

1.in:

3
pavel 120 200 300 400 500
keko 150 400 300 200 100
bartol 470 120 90 93 189

1.out:

1 2
1 3
2 3

测试输出

1 2
1 3
2 3

球球大佬看看哪错了?

2022/8/21 21:24
加载中...