Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
142879 | 陈家宝 | 01串排序 | C++ | 通过 | 100 | 3 MS | 4732 KB | 580 | 2024-04-10 13:53:13 |
#include<bits/stdc++.h> using namespace std; struct s01{ long long g1; string str; }; s01 a[114514]; long long chk(string s){ long long cnt=0; for(int i=0;i<s.size();i++)if(s[i]=='1')cnt++; return cnt; } bool cmp(s01 a,s01 b){ if(a.str.size()!= b.str.size())return a.str.size()<b.str.size(); else if(a.g1!=b.g1)return a.g1<b.g1; return a.str<b.str; } int main(){ long long n; cin>>n; for(long long i=1;i<=n;i++){ cin>>a[i].str; a[i].g1=chk(a[i].str); } sort(a+1,a+n+1,cmp); for(long long i=1;i<=n;i++)cout<<a[i].str<<endl; return 0; }