0
已解决
李瑞曦
高级天翼
高级天翼
我的20分代码:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
string a[101];
bool cmp(string a,string b){
if(a.size()!=b.size())
return a.size()<b.size();
return a+b<b+a;
}
bool cmp1(string a,string b){
return a+b<b+a;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a,a+n,cmp);
sort(a,a+m,cmp1);
for(int i=1;i<=m;i++)
cout<<a[i];
return 0;
}
求大佬帮帮忙
0
已采纳
康曦
中级光能
中级光能
我的代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<string>
using namespace std;
string s[105];
bool cmp1(string x,string y){
if(x.size()!=y.size()) return x.size()<y.size();
return x+y<y+x;
}
bool cmp2(string x,string y){
return x+y<y+x;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>s[i];
}
sort(s+1,s+1+n,cmp1);
sort(s+1,s+1+m,cmp2);
for(int i=1;i<=m;i++){
cout<<s[i];
}
}
康曦在2020-10-18 10:22:10追加了内容
其实你只需要把两个sort变成(a+1,a+1+n,cmp)和(a+1,a+1+m,cmp1)就行了