zoukankan      html  css  js  c++  java
  • TJU Problem 2857 Digit Sorting

    原题:

    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

    6
    1 10 100 1000 10000 100000
    3
    9638 8210 331
    0
    

    Sample Output

    1
    3689
    



    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 }

     

  • 相关阅读:
    调整swt table的行高
    获取TableViewer里面的所有TableViewerColumn
    jface viewer 全选
    jaxb生成pojo类返回类型为布尔值的问题
    EMF中复制对象属性
    向导中的参数传递 wizard param
    GEF中TreeViewer的叶子节点展开
    Cannot modify resource set without a write transaction 问题
    注册emf package并读取EMF文件
    从运行时的工作空间获取EMF文件(IFILE)
  • 原文地址:https://www.cnblogs.com/QingHuan/p/4263791.html
Copyright © 2011-2022 走看看