#include <iostream> using namespace std;
int n; int oxyn, nitn; int f[22][80];
struct gasbottle { int ox; int ni; int we; gasbottle() { ox = ni = we = 0; } }g[1001];
void __read__() { cin >> oxyn >> nitn >> n; for( int i = 1; i <= n; i++ ) cin >> g[i].ox >> g[i].ni >> g[i].we; for( int i = 0; i <= oxyn; i++ ) for( int j = 0; j <= nitn; j++ ) f[i][j] = 9999999; }
void __dp__() { f[0][0] = 0; for( int k = 1; k <= n; k++ ) for( int i = oxyn; i >= 0; i-- ) for( int j = nitn; j >= 0; j-- ) { int x = i + g[k].ox > oxyn ? oxyn : i + g[k].ox; int y = j + g[k].ni > nitn ? nitn : j + g[k].ni; if( f[i][j] + g[k].we < f[x][y] ) f[x][y] = f[i][j] + g[k].we; } }
void __outp__() { cout << f[oxyn][nitn] << endl; }
int main() { __read__(); __dp__(); __outp__();
return 0; }
|