#include #include #include #include using namespace std; long long n,m,k; bool a[260][260]; long long dp[260][260]; long long dividers_size; vector dividers; void start_full() { for(long long j = 0;j> n >> m >> k; for(long long i = 0;i> a[i][j]; for(long long i = 1;i<=k/2;i++) if(k%i==0 && i<=n && k/i<=m) dividers.push_back(i); start_full(); dividers_size = dividers.size(); for(long long j = 0;j i //k/dividers[d] -> j for(long long i = dividers[d]-1;imax_sum) max_sum = current_sum; } } } if(max_sum==0) output << "-1" << endl; else output << max_sum << endl; } /* long long min_deep = long long_MAX; long long current_deep = 0; long long max = 0; for(long long i = 0;icurrent_deep) min_deep = current_deep; } if(min_deep*(y-j+1)==k) } } } } */