请问一下,我哪里错了
查看原帖
请问一下,我哪里错了
1104496
xsb2013楼主2024/9/18 22:08
#include <bits/stdc++.h>
using namespace std;
string s[200010];
int px(string s,string t){
	int sum1 = 0,sum2 = 0;
	int cnt1 = 0,cnt2 = 0;
	int n1 = s.size();
	int n2 = t.size();
	for (int i = 1;i < n1;i++){
		cnt1 = cnt1 * 10 + s[i] - '0';
		if (s[i] == '0' || s[i] == '4' || s[i] == '6' || s[i] == 9){
			sum1++;
		}
		if (s[i] == '8'){
			sum1 += 2;
		}
	}
	for (int i = 1;i < n2;i++){
		cnt2 = cnt2 * 10 + t[i] - '0';
		if (t[i] == '0' || t[i] == '4' || t[i] == '6' || t[i] == 9){
			sum2++;
		}
		if (t[i] == '8'){
			sum2 += 2;
		}
	}
	if (sum1 != sum2) return sum1 < sum2;
	else if (cnt1 != cnt2) return cnt1 < cnt2;
}
int main(){
	int n;
	scanf("%d",&n);
	for (int i = 1;i <= n;i++){
		cin >> s[i];
	}
	sort(s + 1,s + n + 1,px);
	for (int i = 1;i <= n;i++){
		cout << s[i] << " ";
	}
	return 0;
}

这是代码

2024/9/18 22:08
加载中...