Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
109726 | 梁乃元 | 01串排序 | C++ | 运行出错 | 0 | 2 MS | 4708 KB | 974 | 2023-11-11 10:08:08 |
# 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 ; for ( int i = 1 ; 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 ; } else { return a . str < b . str ; } } int main ( ) { freopen ( "strand.in" , "r" , stdin ) ; freopen ( "strand.out" , "w" , stdout ) ; 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 ; cout << endl ; } fclose ( stdin ) ; fclose ( stdout ) ; return 0 ; }