提交时间:2023-11-14 13:10:27

运行 ID: 110291

#include<bits/stdc++.h> using namespace std; struct P{ string s; int sum,leng; }a[114514]; bool cmp(P a,P b){ if (a.leng == b.leng){ if (a.sum == b.sum){ return a.s < b.s; } return a.sum < b.sum; } return a.leng < b.leng; } int main(){ int n; cin>>n; for (int i = 1;i <= n;i++){ cin>>a[i].s; a[i].leng = a[i].s.size(); for (int j = 0;j < a[i].leng;j++){ a[i].sum += (a[i].s[j] == '1'); } } sort(a + 1,a + n + 1,cmp); for (int i = 1;i <= n;i++){ cout<<a[i].s<<'\n'; } return 0; }