poj 2718 Smallest Difference
来源:互联网 发布:淘宝一年营业额 编辑:程序博客网 时间:2024/05/21 16:21
题目大意:
告诉你一串数字,0-9十个数字,每个数字最多出现一次。要求把这些数字拼成两个数,使得这两个数的差值最小。输出差值。
思路:
如果数字个数是偶数个,那么就均分。并且第一个数字差值最小。对剩下的数字进行排序,使得第一个数字小的后面尽可能大,第一个数字大的后面尽可能小。
如果数字个数是奇数个,那么对数字进行排序后,数字小的位数多。
注意一点:数字0不能前导。
代码如下:
#include <iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int main(){ char s[55]; int a[15]; int b[15]; int T,n,m,i,j,x,y,ans,k; scanf("%d",&T); gets(s); while(T--) { gets(s); int num=0; for(i=0;i<strlen(s);i++) { if(s[i]>='0'&&s[i]<='9')a[num++]=s[i]-'0'; } sort(a,a+num); if(num%2==0) { k=num/2; i=1; int tem=55,c=1; if(a[0]==0)i=2; for(i=i;i<num;i++) { if(tem>a[i]-a[i-1]) { tem=a[i]-a[i-1]; c=i; } else if(tem==a[i]-a[i-1]) { if(abs(c-k)>abs(i-k))c=i; } } x=a[c];y=a[c-1]; j=0; for(i=0;i<num;i++) { if(a[i]==x||a[i]==y)continue; b[j++]=a[i]; } k=(num-2)/2; for(i=0;i<k;i++) x=x*10+b[i]; for(i=num-3;i>=k;i--) y=y*10+b[i]; ans=x-y; } else { if(num==1)ans=a[0]; else { k=(num+1)/2; if(a[0]==0) { x=a[1]*10; for(i=2;i<k;i++) x=x*10+a[i]; y=0; for(i=num-1;i>=k;i--) y=y*10+a[i]; ans=x-y; } else { x=0; for(i=0;i<k;i++) x=x*10+a[i]; y=0; for(i=num-1;i>=k;i--) y=y*10+a[i]; ans=x-y; } } } printf("%d\n",ans); } return 0;}
0 0
- POJ 2718 Smallest Difference
- poj 2718 Smallest Difference
- POJ-2718-Smallest Difference
- poj 2718 Smallest Difference
- poj 2718 Smallest Difference
- POJ 2718-Smallest Difference
- POJ 2718 Smallest Difference
- POJ 2718 Smallest Difference
- POJ 2718 Smallest Difference
- POJ 2718 Smallest Difference
- Smallest Difference(POJ-2718)
- POJ 2718 Smallest Difference
- POJ-2718 Smallest Difference
- poj-2718 Smallest Difference
- poj 2718 Smallest Difference
- POJ--2718 Smallest Difference
- poj-2718-Smallest Difference
- POJ 2718 Smallest Difference
- java进程间通讯机制代码
- 黑马程序员_Java网络编程之TCP应用
- 基于GTK+的单词数值计算器
- 3.Swift教程翻译系列——Swift基础知识
- java枚举在android项目应用
- poj 2718 Smallest Difference
- js 阻止元素(文档)默认事件,阻止冒泡事件
- 移动终端,一个凑单的想法
- java枚举在android项目应用
- ubuntu----视频播放软件 VLC
- linux UDP通讯 获取源IP地址端口信息
- 做一个不乖的孩子
- 关于使用.Net4的web应用在mono上呈现目录结构的解决办法
- 用减奇数次数的方法,求一个数的近似平方根