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 }

     

  • 相关阅读:
    Chrome下载无后缀问题
    duilib程序HelloWorld
    go的windows下的安装包
    ASP.NET MVC异步上传图片和富文本编辑器的使用详解
    搭建go环境(windows和linux)
    构建离线Go编程指南——gotour
    判定模块加载时是否存在循环依赖
    Winform开发框架之框架演化
    为什么要写技术博
    JTREE使用例子—创建一个客户端界面
  • 原文地址:https://www.cnblogs.com/QingHuan/p/4263791.html
Copyright © 2011-2022 走看看