Pagini recente » Cod sursa (job #648433) | Cod sursa (job #3234402) | Cod sursa (job #916709) | Cod sursa (job #1754505) | Cod sursa (job #466682)
Cod sursa(job #466682)
#include <algorithm>
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstring>
#include <ctime>
#include <bitset>
#include <deque>
#include <fstream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
typedef bool int01;
typedef char cha08;
typedef short int int16;
typedef int int32;
typedef float rea32;
typedef long long int int64;
typedef double rea64;
const cha08 Input[] = "prod.in";
const cha08 Output[] = "prod.out";
ifstream fin( Input );
ofstream fout( Output );
int32 f[10];
int64 A, B, AA, BB, XXX;
void Back( int32 k ) {
if( k == 0 ) {
if( A * B > XXX ) {
XXX = A * B;
AA = A;
BB = B;
}
// fout << A << " " << B << "\n";
return;
}
if( !f[k] ) {
Back( k - 1 );
return;
}
A = A * 10 + k;
--f[k];
Back( k );
A /= 10;
B = B * 10 + k;
Back( k );
B /= 10;
++f[k];
}
int32 main() {
int32 i;
for( i = 1; i <= 9; ++i )
fin >> f[i];
for( i = 9; i >= 1; --i )
if( f[i] ) {
A = i;
--f[i];
break;
}
for( i = 9; i >= 1; --i )
if( f[i] ) {
B = i;
--f[i];
break;
}
Back( 9 );
fout << XXX;
fin.close();
fout.close();
return 0;
}