#include "puzutl.h"
YesNo used[10];
int maxab = 0;
void calmax(int v, int u, int c, int d, int e, int f, int g, int h, int i, int j)
{
int a = -1, b = -1;
for( int k=0; k< 10; k++) {
if( !used[k]) { a=b; b=k;}
}
if( (a * 10 + b + v / u) == 100) {
maxab = max( maxab, a*10+b);
if( (a*10+b) == maxab) ps( "%d%d + %d%d%d%d%d / %d%d%d = 100\n", a,b,c,d,e,f,g,h,i,j);
}
swap( a, b);
if( (a * 10 + b + v / u) == 100) {
maxab = max( maxab, a*10+b);
if( (a*10+b) == maxab) ps( "%d%d + %d%d%d%d%d / %d%d%d = 100\n", a,b,c,d,e,f,g,h,i,j);
}
}
void find()
{
for( int c=1; c<= 9; c++) { // cは0でないことは判っている
used[c] = YES;
for( int d=0; d<= 9; d++) {
if( used[d]) continue;
used[d] = YES;
for( int e=0; e<= 9; e++) {
if( used[e]) continue;
used[e] = YES;
for( int f=0; f<= 9; f++) {
if( used[f]) continue;
used[f] = YES;
for( int g=0; g<= 9; g++) {
if( used[g]) continue;
used[g] = YES;
for( int h=0; h<= 9; h++) {
if( used[h]) continue;
used[h] = YES;
for( int i=0; i<= 9; i++) {
if( used[i]) continue;
used[i] = YES;
for( int j=0; j<= 9; j++) {
if( used[j]) continue;
used[j] = YES;
int v = c * 10000 + d * 1000 + e * 100 + f * 10 + g;
int u = h * 100 + i * 10 + j;
if( (v % u) == 0) calmax(v,u,c,d,e,f,g,h,i,j);
used[j] = NO;
}
used[i] = NO;
}
used[h] = NO;
}
used[g] = NO;
}
used[f] = NO;
}
used[e] = NO;
}
used[d] = NO;
}
used[c] = NO;
}
}
int main( int argc, cstring argv[])
{
find();
return 0;
}