zoukankan      html  css  js  c++  java
  • Kia's Calculation hdu4726

    Kia's Calculation

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1367    Accepted Submission(s): 327


    Problem Description
    Doctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the sum of two digits exceeds 9. For example, when she calculates 4567+5789, she will get 9246, and for 1234+9876, she will get 0. Ghee is angry about this, and makes a hard problem for her to solve:
    Now Kia has two integers A and B, she can shuffle the digits in each number as she like, but leading zeros are not allowed. That is to say, for A = 11024, she can rearrange the number as 10124, or 41102, or many other, but 02411 is not allowed.
    After she shuffles A and B, she will add them together, in her own way. And what will be the maximum possible sum of A "+" B ?
     
    Input
    The rst line has a number T (T <= 25) , indicating the number of test cases.
    For each test case there are two lines. First line has the number A, and the second line has the number B.
    Both A and B will have same number of digits, which is no larger than 106, and without leading zeros.
     
    Output
    For test case X, output "Case #X: " first, then output the maximum possible sum without leading zeros.
     
    Sample Input
    1
    5958
    3036
     
    Sample Output
    Case #1: 8984
     1 #include <iostream>
     2 #include <string.h>
     3 #include <stdio.h>
     4 #include <math.h>
     5 #include <algorithm>
     6 using namespace std;
     7 int a[10],b[10];
     8 int fun()
     9 {
    10     int i,j,k;
    11     for(k=9; k>=0; k--)
    12     {
    13         for(i=9; i>=1; i--)
    14         {
    15             for(j=9; j>=1; j--)
    16             {
    17                 if(a[i]&&b[j]&&(i+j)%10==k)
    18                 {
    19                     a[i]--,b[j]--;
    20                     printf("%d",k);
    21                     return k;
    22                 }
    23             }
    24         }
    25     }
    26 }
    27 int main()
    28 {
    29     int t,i,j,k,r;
    30     char x;
    31     scanf("%d",&t);
    32     getchar();
    33     for(r=1; r<=t; r++)
    34     {
    35         memset(a,0,sizeof(a));
    36         memset(b,0,sizeof(b));
    37         while(x=getchar())
    38         {
    39             if(x=='
    ')break;
    40             a[x-'0']++;
    41         }
    42         while(x=getchar())
    43         {
    44             if(x=='
    ')break;
    45             b[x-'0']++;
    46         }
    47         printf("Case #%d: ",r);
    48         if(fun())
    49             for(k=9; k>=0; k--)
    50             {
    51                 for(i=9; i>=0; i--)
    52                 {
    53                     for(j=9; j>=0; j--)
    54                     {
    55                         while(a[i]&&b[j]&&(i+j)%10==k)
    56                         {
    57                             a[i]--,b[j]--;
    58                             printf("%d",k);
    59                         }
    60                     }
    61                 }
    62             }
    63         puts("");
    64     }
    65 }
    View Code
     
  • 相关阅读:
    编程中Visual Studio常用的快捷键
    解决博易博客后台文章管理页面无法显示分页的问题
    iReaper for WP7 顺利完工
    Visual Studio中web应用程序和网站区别
    SQL批处理
    SQL安全性
    实习之路之篇
    python 日志文件
    后端调用python遥感功能的方式
    C#使用系统的“显示桌面”功能(Shell.Application)
  • 原文地址:https://www.cnblogs.com/ERKE/p/3638067.html
Copyright © 2011-2022 走看看