描述

输入一个整数数组,将它们连接起来排成一个数,找出能排出的所有数字中最大,最小的两个,输出两个数的差值。例如输入数组{1,  2},则输出9。

 
 

输入

第一行输入一个整数T,表示有T组测试数据。每组测试数据的第一行输入一个整数n(0<n<=1000),第二行输入n个整数ai(0<=ai<2^32)。

输出

输出最大数最小数的差值,输出占一行。

样例输入

1
3
1 2 3

样例输出

198
大整数减法,关键是想好如何排序。排序规则是比较s1+s2和s2+s1的大小。
#include <bits/stdc++.h>
using namespace std;
const int N = ;
struct node
{
char s[];
} q[];
int a[N], b[N];
bool gminus(int *a,int *b)
{
for(int i = ; i <= a[]; i++)
{
if(a[i]<b[i])
{
a[i+]--;
a[i]+=;
}
a[i]=a[i]-b[i];
}
while(a[a[]]==&&a[]) a[]--;
if(!a[]) return ;
return ;
}
int cmp(node a,node b)
{
int la=strlen(a.s);
int lb=strlen(b.s);
int l=max(la,lb);
for(int i=; i<l; i++)
{
if(a.s[i%la]<b.s[i%lb])
return ;
else if(a.s[i%la]>b.s[i%lb])
return ;
}
return ;
}
int main()
{
int t, n;
cin>>t;
while(t--)
{
scanf("%d", &n);
for(int i = ; i < n; i++) scanf("%s", q[i].s);
sort(q, q+n, cmp);
char s[N];
memset(s, , sizeof s);
for(int i = ; i < n; i++)
strcat(s, q[i].s);
int num = , l = strlen(s);
for(int i = l-; i >= ; i--)
b[++num] = s[i]-'';
b[] = num, num = ;
memset(s, , sizeof s);
for(int i = n-; i >= ; i--)
strcat(s, q[i].s);
for(int i = l-; i >= ; i--)
a[++num] = s[i]-'';
a[] = num;
bool f = gminus(a, b);
if(!f) printf("");
else
for(int i = a[]; i>=; i--)
printf("%d", a[i]);
cout<<endl;
}
return ;
}

【nyoj-1233】差值的更多相关文章

  1. PHP中比较两个时间的大小与日期的差值

    在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的 ...

  2. 用Scala实现集合中相邻元素间的差值

    欢迎转载,转载请注明出处,徽沪一郎. 概要 代码这东西,不写肯定不行,新学Scala不久,将实际遇到的一些问题记录下来,日后也好查找. 今天讲的是如何计算同一集合中元素两两之间的差值,即求开始集合(a ...

  3. 输出有序数组的中两个元素差值为指定值diff的两个元素

    题目: 输出有序数组的中两个元素差值为指定值diff的两个元素. 思路: 这与输出两个元素的和的值为一定值类似,需要两个指针,不同的是:指针不是一左一右,而是一前一后. 如果差值等于diff,则返回: ...

  4. php 算法之切割数组,不用array_chunk(),算法之二,取数组的差值,不用array_diff()

    用php写算法切割数组,不用array_chunk();算法例如以下所看到的. <?php //$array 数组 //$size 每一个数组的个数 //每一个数组元素是否默认键值 functi ...

  5. 题目1096:日期差值(a-b=(a-c)-(b-c))

    http://ac.jobdu.com/problem.php?pid=1096 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每 ...

  6. LD1-K(求差值最小的生成树)

    题目链接 /* *题目大意: *一个简单图,n个点,m条边; *要求一颗生成树,使得其最大边与最小边的差值是所有生成树中最小的,输出最小的那个差值; *算法分析: *枚举最小边,用kruskal求生成 ...

  7. Hibernate中HQL的日期差值计算,可计算相差多少秒

    最近有个业务需求就是计算订单创建时间离现在超过 4 小时的订单都查找出来! 那么就需要用到日期函数了. 网上找了一下总共的日期函数有一下几个: CURRENT_DATE() 返回数据库当前日期 时间函 ...

  8. php 日期 - 计算2个日期的差值

    /** * 日期-计算2个日期的差值 * @return int */ public function get_difference($date, $new_date) { $date = strto ...

  9. javascript 计算两个日期的差值

    代码 Typescript版 /** * TimeSpan just like the class TimpSpan in C# ,represent the time difference * @c ...

  10. PS图层混合算法之六(差值,溶解, 排除)

    差值模式: 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值.与白色混合将使底色反相:与黑色混合则不产生变化. 排除模式可生成和差值模式相似的效果,但比差值模 ...

随机推荐

  1. 【1】Kali Linux的安装及配置

    爱生活就得够GEEK. ---------------------------------------------------------------完美的分割线------------------- ...

  2. 写入Csv

    //定义文件输出流  FILE *f; f = fopen("a.csv" , "wb"); fprintf(f,"aaa,23,sdf\n" ...

  3. JMS--消息头

    一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload).对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextM ...

  4. springbcloud5----高可用

    package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...

  5. 理解RESTful 架构

    REST是所有Web应用都应该遵守的架构设计指导原则. Representational State Transfer,翻译是”表现层状态转化”. 面向资源是REST最明显的特征,对于同一个资源的一组 ...

  6. Job流程:Shuffle详解

    此文承接Job流程:Mapper类分析.MapReduce为确保每个reducer的输入都按键排序,数据从map输出到reducer输入的这段过程成为Shuffle. map端 1).Spill溢写. ...

  7. 分布式缓存DistributedCache

    本文是对MR案例:Map-Join的解读. 在hadoop中,共享全局变量或全局文件的几种方法 使用Configuration的set()方法,只适合数据内容比较小的场景 将缓存文件放在HDFS上,每 ...

  8. C#设计模式之控制反转即依赖注入-微软提供的Unity

    使用VS2015的Nuget管理器下载Unity. 程序员接口类: 1 namespace UnityDemo 2 { 3 public interface IProgrammer 4 { 5 voi ...

  9. centos7 firewall 操作

    一.firewall配置 The configuration for firewalld is stored in various XML files in /usr/lib/firewalld/ a ...

  10. [代码解析]Mask R-CNN介绍与实现(转)

    文章来源 DFann 版权声明:如果你觉得写的还可以,可以考虑打赏一下.转载请联系. https://blog.csdn.net/u011974639/article/details/78483779 ...