#include using namespace std; #define MAX(A, B) ((A)>(B)?(A):(B)) int optimal[21][21][401]; int getBest(int w, int h, int m); int main() { int i, j, k; int w, h, m; cin >> w >> h >> m; while(w!=0 && h!=0 && m!=0) { k=0; for(int i=1; i<=w; i++) for(int j=1; j<=h; j++) optimal[i][j][k]=i*j; for(int k=1; k<=m; k++) for(int i=1; i<=w; i++) for(int j=1; j<=h; j++) { int opt=i*j; int t=0; for(int x=1; xt) opt=t; } } for(int y=1; yt) opt=t; } } optimal[i][j][k]=opt; //cout << "Setting: " << i << " " << j << " " << k << " to " << optimal[i][j][k] << endl; } cout << optimal[w][h][m-1] << endl; cin >> w >> h >> m; } }