您的位置:首页 > Web前端

刷题——Smallest Difference POJ - 2718

2017-08-14 13:46 489 查看
/*

要使整数对绝对值的差最小,那么两个整数对的位数之差不超过1,然后枚举

*/

#include <algorithm>

#include <stdio.h>

#include <string.h>

#include <math.h>

using namespace std;

int main()

{
int t;
scanf("%d",&t);
getchar();
while(t--){
char ch[30];
gets(ch);
int l=strlen(ch);
int ss[15],gs=0;
for(int i=0;i<l;i++){
if(ch[i]>='0'&&ch[i]<='9'){
ss[gs]=ch[i]-'0';
gs++;
}
}
int sum=99999999;
if(gs==2)
sum=abs(ss[0]-ss[1]);
else
do{
if(ss[0]!=0&&ss[gs/2]!=0){
int s1=0,s2=0;
for(int i=0;i<gs/2;i++)
s1=s1*10+ss[i];
for(int i=gs/2;i<gs;i++)
s2=s2*10+ss[i];
if(sum>abs(s2-s1))sum=abs(s2-s1);
}
4000

}while(next_permutation(ss,ss+gs));
printf("%d\n",sum);
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: