感觉让这题玩费了。。。
好不容易用一个好久不用的函数。。。
没想到无穷大写小了。。
next_permutation全排列问题
自动生成下个序列
#include <stdio.h>
#include <math.h>
#include<algorithm>
#define PI acos(-1.0)
#define ll long long
using namespace std;
int main()
{
int n,m;
char a[8][8];
ll b[8];
while(~scanf("%d%d",&n,&m))
{
getchar();
for(int i=0; i<n; i++)scanf("%s",a[i]);
int xu[8]= {0,1,2,3,4,5,6,7};
long long num=1;
for(int i=1; i<=m; i++)
num*=i;
ll cha=0x1f1f1f1f1f;
while(num--)
{
for(int i=0; i<n; i++)
{
b[i]=0;
for(int j=0; j<m; j++)
{
if(a[i][j]!='0')
{
int zz=a[i][j]-'0';
int h=xu[j];
int p=1;
for(int i=0;i<h;i++)
p*=10;
ll z=p*zz;
b[i]+=z;
}
}
}
sort(b,b+n);
if(b[n-1]-b[0]<cha)
{
cha=b[n-1]-b[0];
}
next_permutation(xu,xu+m);
}
printf("%lld\n",cha);
}
}
#include <math.h>
#include<algorithm>
#define PI acos(-1.0)
#define ll long long
using namespace std;
int main()
{
int n,m;
char a[8][8];
ll b[8];
while(~scanf("%d%d",&n,&m))
{
getchar();
for(int i=0; i<n; i++)scanf("%s",a[i]);
int xu[8]= {0,1,2,3,4,5,6,7};
long long num=1;
for(int i=1; i<=m; i++)
num*=i;
ll cha=0x1f1f1f1f1f;
while(num--)
{
for(int i=0; i<n; i++)
{
b[i]=0;
for(int j=0; j<m; j++)
{
if(a[i][j]!='0')
{
int zz=a[i][j]-'0';
int h=xu[j];
int p=1;
for(int i=0;i<h;i++)
p*=10;
ll z=p*zz;
b[i]+=z;
}
}
}
sort(b,b+n);
if(b[n-1]-b[0]<cha)
{
cha=b[n-1]-b[0];
}
next_permutation(xu,xu+m);
}
printf("%lld\n",cha);
}
}