CF 92 div2 B

题目:http://codeforces.com/problemset/problem/124/B

思路:学会用while(next_permutation(...))

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
#define inf 0xfffffff
int num[10][10];
int p[10];
int main()
{
    char s;
    int n,k;
    cin>>n>>k;
    for(int i=0;i<n;i++)
        for(int j=0;j<k;j++)
        {
            cin>>s;
            num[i][j]=s-'0';
        }
    for(int i=0;i<k;i++)
        p[i]=i;
    int ans=inf;
    do{
        int mx=-inf,mi=inf;
        int tmp;
        for(int i=0;i<n;i++)
        {
            tmp=0;
            for(int j=0;j<k;j++)
            {
                tmp*=10;
                tmp+=num[i][p[j]];
            }
            mi=min(mi,tmp);
            mx=max(mx,tmp);
        }
        ans=min(mx-mi,ans);
    }while(next_permutation(p,p+k));
    cout<<ans<<endl;
}
View Code
原文地址:https://www.cnblogs.com/overflow/p/3207400.html