forked from DionysiosB/CodeForces
-
Notifications
You must be signed in to change notification settings - Fork 0
/
124B-Permutations.cpp
37 lines (26 loc) · 936 Bytes
/
124B-Permutations.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdio>
#include <vector>
#include <algorithm>
int main(){
int n, k; scanf("%d %d\n", &n, &k);
std::vector<int> perm(k); for(int p = 0; p < k; p++){perm[p] = p;}
std::vector<std::vector<int> > numbers(n, std::vector<int>(k, 0));
for(int p = 0; p < n; p++){
for(int q = 0; q < k; q++){char temp; scanf("%c", &temp); numbers[p][q] = temp - '0';}
scanf("\n");
}
long minDiff(1e10);
do{
long minNum(1e10), maxNum(0);
for(int p = 0; p < n; p++){
long current = 0;
for(int q = 0; q < k; q++){current = 10 * current + numbers[p][perm[q]];}
if(current < minNum){minNum = current;}
if(current > maxNum){maxNum = current;}
}
long diff = maxNum - minNum;
if(diff < minDiff){minDiff = diff;}
}while(next_permutation(perm.begin(), perm.end()));
printf("%ld\n", minDiff);
return 0;
}