Advertisement
Gosunov

Untitled

Oct 7th, 2022
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define all(a) (a).begin(), (a).end()
  4. #define int long long
  5.  
  6. const int n = 50;
  7. int dp[n][n];
  8.  
  9. void solve() {
  10.     for (int i = 0; i < n; ++i) {
  11.         for (int j = 0; j < n; ++j) {
  12.             dp[i][j] = 1e9;
  13.         }
  14.     }
  15.     for (int i = 1; i < n; ++i) {
  16.         dp[0][i] = 0;
  17.         dp[i][0] = 0;
  18.         dp[1][i] = i;
  19.         dp[i][1] = i;
  20.     }
  21.     for (int a = 2; a < n; ++a) {
  22.         for (int b = 2; b < n; ++b) {
  23.             for (int y = 0; y <= b; ++y) {
  24.                 for (int x = 0; x <= a; ++x) {
  25.                     dp[a][b] = min(
  26.                         dp[a][b],
  27.                         dp[x][y] + dp[a - x][y] + dp[x][b - y] + dp[a - x][b - y]
  28.                     );
  29.                 }
  30.             }
  31.             if (a == b) {
  32.                 cout << a << ": " << dp[a][a] << '\n';
  33.                 dp[a][a] = 1;
  34.             }
  35.         }
  36.     }
  37. }
  38.  
  39. signed main() {
  40.     ios::sync_with_stdio(0); cin.tie(0);
  41.     solve();
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement