Ranking (as of 2014-01-02): 598 out of 1156
Language: C++
/* UVa 10721 - Bar Codes To build using Visual Studio 2012: cl -EHsc -O2 UVa_10721_Bar_Codes.cpp */ #include <iostream> using namespace std; const int nkm_max = 50; long long bc[nkm_max + 1][nkm_max + 1][nkm_max + 1]; int main() { int n, k, m; for (n = 1; n <= nkm_max; n++) for (m = 1; m <= nkm_max; m++) if (n <= m) bc[n][1][m] = 1; for (n = 1; n <= nkm_max; n++) bc[n][n][1] = 1; for (k = 2; k <= nkm_max; k++) for (n = 2; n <= nkm_max; n++) for (m = 2; m <= nkm_max; m++) if (n >= k && n <= k * m) { if (n - k + 1 >= m) for (int i = 1; i <= m; i++) bc[n][k][m] += bc[n - i][k - 1][m]; else bc[n][k][m] = bc[n][k][m - 1]; } while (cin >> n >> k >> m) cout << bc[n][k][m] << endl; return 0; }
No comments:
Post a Comment