贴一个比较简短的吧,,,,感觉写的都好长,,,
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+5;
struct node{
string a,b;
}arr[maxn];
bool cmp(const node& a,const node& b){
if (a.b == b.b) return a.a>b.a;
return a.b<b.b;
}
int main() {
int n;
cin>>n;
string s;
for (int i = 0; i < n; ++i) {
cin>>s;
arr[i].a=s;
arr[i].b=s.substr(s.find('@')+1);
}
sort(arr,arr+n,cmp);
for (int j = 0; j < n; ++j) {
cout<<arr[j].a<<endl;
}
return 0;
}
要不要看看我的代码?
https://acm.ecnu.edu.cn/blog/entry/454/
下载地址(2021-02-25 过期):
https://paste.ubuntu.com/p/KHgsdn5cb5/
然而并没有释放相关的内存,不过还好