社区讨论

30分,为什么总成绩算不对???

P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m4o6nr4j
此快照首次捕获于
2024/12/14 20:58
去年
此快照最后确认于
2025/11/04 12:51
4 个月前
查看原帖
用的是结构体 + sort排序,烦请各位大佬看一下。
CPP
#include <bits/stdc++.h>
using namespace std;

struct tmp
{
	int sum = 0;
	int qimo_chengji = 0;
	int banji_chengji = 0;
	string is_xuesheng;
	string xibu;
	int lunwen = 0;
	int num = 0;
	string name;
}a[1000000];

bool cmp(tmp x, tmp y)
{
	if (x.sum != y.sum) return x.sum > y.sum;
	else
	{
		return x.num < y.num;
	}
}

int main()
{
	int n;
	cin >> n;
	long long z = 0;
	for (int i = 1; i <= n; i++) cin >> a[i].name >> a[i].qimo_chengji >> a[i].banji_chengji >> a[i].is_xuesheng >> a[i].xibu >> a[i].lunwen;
	for (int i = 1; i <= n; i++)
	{
		a[i].num = i;
		if (a[i].qimo_chengji > 80 && a[i].lunwen >= 1) a[i].sum += 8000;
		if (a[i].qimo_chengji > 85 && a[i].banji_chengji > 80) a[i].sum += 4000;
		if (a[i].qimo_chengji > 90) a[i].sum += 2000;
		if (a[i].qimo_chengji > 85 && a[i].xibu == "Y") a[i].sum += 1000;
		if (a[i].qimo_chengji > 80 && a[i].is_xuesheng == "Y") a[i].sum += 850;
	}
	sort(a + 1, a + n + 1, cmp);
	for (int i = 1;i <= n; i++) z += a[i].sum;
	cout << a[1].name << endl << a[1].sum << endl << z << endl;
	return 0;
}
测试样例2:
CPP
100
KSSHsCEhNHXIMxnKjszE 93 98 N Y 0
KRXBnwAzDGjpfJgRpKt 95 90 Y Y 0
JBOyaqxicVGB 96 84 N Y 0
HolSWzxphdbM 99 80 Y Y 0
YzYKojgqgraUpqNyJ 95 90 N N 0
LgX 97 94 Y Y 0
HCRuZbWsSDgkOEoj 80 90 N Y 0
S 85 89 N Y 10
AdLhdCBxwmJXRm 78 97 Y N 0
QhgGp 85 87 Y N 0
ZFTdFawbiwDG 87 80 N Y 0
JaOThlpkrRkejXMMXgbu 95 80 Y Y 0
NiAntWp 85 91 Y N 0
Te 81 81 Y Y 0
TrFXiYBMzJ 92 87 N N 0
MlhsUsruSKdrAGkUerE 97 92 Y Y 0
NWpjgxcNegmyEGHlPTP 88 94 N N 5
VCXJjomOzywFZBVkDR 87 75 Y N 0
PxZYNvXNdbUtBIp 82 75 N Y 0
TsJkMpF 85 99 N Y 0
BwaIeOrqdatudl 85 80 N N 0
IB 95 90 Y N 0
HmPorGeOs 98 85 Y N 0
DgRHzC 87 82 Y N 0
WkRmkErigra 90 75 Y N 0
MZdQ 85 78 N N 0
NIrWcjt 81 95 Y N 0
MQBfcr 85 80 Y N 0
IXrLPdJhEekBRgsbkqI 95 85 Y Y 6
MWAd 89 75 Y N 0
BVYqUBdV 76 79 Y Y 0
NhmSyMnvHxUkjye 79 90 Y N 0
NUPyQqEhklWtWxeIz 80 95 Y N 0
NsQbL 95 86 N N 0
KEKFcpbDWQXUsQTXvFbs 95 95 N N 0
ZzjJWy 90 80 N Y 3
TOWFblEWAuVgAxdHt 95 100 N N 0
HRYFlarRQhe 100 90 N N 0
SGUCaHJVg 95 87 Y Y 0
CsNEZwUWERVFFxLsdyK 85 94 N N 0
PZhrRpBMpm 80 85 Y N 0
LsyePjMaoonOscyyUQY 82 98 Y Y 0
SkPGcYDnYyIp 95 90 N N 0
OaV 90 90 Y N 0
W 75 90 Y N 0
TJjZwq 85 75 Y Y 0
PVFVBEocVjjpg 90 88 N N 0
HMJecx 85 100 N Y 0
PvgXSkNZQNcfJrgTzgm 90 75 N Y 0
VnVXCwwJdbrusXG 89 95 Y N 0
BNziq 95 76 Y Y 0
MNjzTqMCtx 85 95 N N 0
UihwjdZaUXWuMsytRtN 90 88 Y N 7
HdXkkOHRQoG 93 85 Y N 0
DHDAFValkXKFYjznnn 75 100 N N 0
JskIgwiNH 85 85 Y N 0
SeYSBFuVQaEUXwf 75 80 N Y 0
XfGMOTDT 82 75 Y Y 0
GnGatTgZBPgj 90 90 N N 0
K 85 80 Y Y 0
KRJVphYKwQTOMc 95 85 N N 0
DFWtLGoFLXHptkI 75 92 N Y 0
CayHZQXpTpyFPSuJz 87 76 N Y 0
RRlRboFqAgLvzrJ 89 75 N Y 4
DbWHykSi 85 84 N Y 0
WQHneRqIh 90 82 Y N 0
BhGejmW 90 93 Y N 0
AFEEic 95 80 Y N 0
MXhBgPj 96 98 Y Y 0
WJsSWOCR 77 85 Y Y 0
A 79 82 N N 0
Wy 95 85 Y Y 0
OtgBaCKAVmMEFxPVcbE 84 75 N Y 0
DnBaraTLVBkPJJj 85 75 Y N 0
Kzir 84 75 Y Y 0
PxCMvWOdyZcRW 90 76 N N 0
ZcztKxXsrhqSDuxBeN 80 84 N Y 0
EesxZKSACX 80 87 N N 0
CvCT 75 85 N N 0
UwrgH 76 80 Y N 0
VwcGoYzhhVFWGyFzjdn 78 90 N N 0
KQ 75 100 N Y 0
MHJszTi 95 79 Y Y 0
BPJXuWxsGGNYz 87 92 Y Y 5
XWWpW 96 92 Y Y 6
GKIdgeGTHWd 80 77 Y Y 0
MeGS 88 75 N N 0
SblEZfNCkGAkRSrzFADB 90 88 N Y 0
BGLYzCxFVARuGu 87 75 N Y 0
WMQkzgUafGBnqiuBgRpn 77 75 N Y 0
LIWndzmjDozIMTu 80 94 N Y 0
LsPuNFjIzCcppis 80 80 Y N 0
JgycuqAJHELopIoZm 87 85 Y N 0
UJmFKI 75 90 N N 0
RdvGLr 95 85 Y Y 0
WVsTKZHjDEc 90 85 N N 0
VvtFQcwAErUIru 85 87 N Y 0
JKTcYDOhBIJdTBG 94 85 Y N 0
VJqtvLWNUdTEypjOCB 85 94 N Y 0
ET 80 80 N N 2
测试答案2:
CPP
IXrLPdJhEekBRgsbkqI
15850
315050
我的答案:
CPP
IXrLPdJhEekBRgsbkqI
15850
321850   
十分感谢大家,感谢各位大佬!

回复

2 条回复,欢迎继续交流。

正在加载回复...