首页 > 代码库 > TJU Problem 2857 Digit Sorting
TJU Problem 2857 Digit Sorting
原题:
Time Limit: 1.0 Seconds Memory Limit: 65536K
Total Runs: 3234 Accepted Runs: 1704
Several players play a game. Each player chooses a certain number, writes it down (in decimal notation, without leading zeroes) and sorts the digits of the notation in non-decreasing order, obtaining another number. The player who receives the largest number wins.
You are given the list of numbers initially chosen by the players. Output the winner‘s resulting number.
Input
The first line of each test case contains an integer N (1 ≤ N ≤ 50), indicating the number of the players. Then N integers followed in the second line. Each number will be between 0 and 100000, inclusive.The input is terminated with N = 0.
Output
Output one line for each test case, indicating the winner‘s resulting number.
Sample Input
61 10 100 1000 10000 10000039638 8210 3310
Sample Output
13689
Source: TJU Team Selection Contest 2007 (1)
1 #include <iostream> 2 #include <algorithm> 3 #include <string.h> 4 using namespace std; 5 6 int num[55]; 7 int b[55]; 8 9 int main() {10 int N;11 memset(b, 0, sizeof(b));12 while (cin >> N && N != 0) {13 for (int k = 0; k < N; k++) {14 memset(num, 0, sizeof(num));15 int n, count = 0; cin >> n;16 for (int i = 0; i < 10; i++) {17 num[i] = n % 10;18 n /= 10; count++;19 if (n == 0) break;20 }21 sort(num, num + count);22 //9for (int i = 0; i < count; i++) cout << "num["<<i<<"] "<<num[i]<<endl;23 //memcpy(b, num, sizeof(b));24 //cout << "b["<<k<<"] "<<b[k] << endl;25 for (int i = 0; i < count; i++) {26 if (num[i] != 0) b[k] = b[k]*10 + num[i];27 }28 //cout << "b["<<k<<"] "<<b[k] << endl;29 }30 sort(b, b + N);31 cout << b[N - 1] << endl;32 memset(b, 0, sizeof(b));33 }34 return 0;35 }
TJU Problem 2857 Digit Sorting
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。