Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #include<iostream>
- #include<cstring>
- #define maxn 5000
- #define oo 10000000
- #define FOR(i,a,b) for(int i= a;i <= b;i++)
- #define REP(i,n) for(int i = 0; i < n ;i++)
- using namespace std ;
- typedef vector<int> vi ;
- int F[maxn][maxn] ;
- void process(int n, int m)
- {
- FOR(i,1,n) F[i][i] = 1;
- FOR(i,1,n)
- FOR(j,i+1,m)
- {
- F[i][j] = oo ;
- FOR(k,1,i/2) F[i][j] = min(F[i][j] ,F[k][j]+F[i-k][j]) ;
- FOR(k,1,j/2) F[i][j] = min(F[i][j],F[i][k]+F[i][j-k]);
- F[j][i] = F[i][j];
- }
- cout << F[n][m] ;
- }
- int main()
- {
- int n, m ;
- cin >> n >> m ;
- if ( n > m )swap(n,m);
- process(n,m) ;
- system("pause");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement