社区讨论

64分WA,最后两个点过不了哇

P1104生日参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@mhjto4g3
此快照首次捕获于
2025/11/04 08:20
4 个月前
此快照最后确认于
2025/11/04 08:20
4 个月前
查看原帖
最后两个点不管怎么都过不了,各位大佬帮忙看看吧
CPP
#include<bits/stdc++.h>
using namespace std;
bool cmp(string a,string b){
	if(a.substr(1,4)!=b.substr(1,4))
	    return a.substr(1,4)>b.substr(1,4);
	else{
		if(a.substr(6,2)!=b.substr(6,2))
		    return a.substr(6,2)>b.substr(6,2);
		else{
			if(a.substr(9,2)!=b.substr(9,2))
			    return a.substr(9,2)>b.substr(9,2);
			    
		}
	}
	if(a==b)
	    return false;
}
int main(){
	int n;
	cin>>n;
	ostringstream oss;
	map<string,string> m;
	string a,b,c,t[n],d;
	char e=' ';
	for(int i=1;i<=n;i++){
       cin>>a;
       getline(cin,b);
	   oss << i;
	   d = oss.str();
	   oss.str("");
       b+=" ";
	   b+=d;
	   if(b.substr(7,1)==" "){
	   	b.insert(6,1,e);
	   }
	   if(b.substr(10,1)==" ")
	       b.insert(9,1,e);
       m[b]=a;
       t[i-1]=b;
	}
	stable_sort(t,t+n,cmp);
	for(int i=n-1;i>=0;i--){
		c=t[i].substr(0,t[i].size());
		if(i==0)
		cout<<m[c];
		else
		cout<<m[c]<<endl;
	}
	return 0;
}

回复

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

正在加载回复...