这是一道贪心题目,相对简单的贪心题目,一般的贪心就是极端化,要么就是按照某种东西排序,要么就是按照一条路走到黑,等等。虽然证明贪心不是很简单但是通过思考,常识和写出样例应该可以猜得出来。本体就是这样,开始按照一条路走下去,直到这一边不能再划分,在走向另一边。然后两种情况取大的。
#include<iostream> using namespace std; #include<stdio.h> int main() { long long m,n,k,i; while(cin>>m>>n) { cin>>k; i=0; if(m+n-2<k) { cout<<"-1"<<endl; continue; } if(n>k)i=i>m*(n/(k+1))?i:m*(n/(k+1)); if(m>k)i=i>n*(m/(k+1))?i:n*(m/(k+1)); if(n<=k)i=i>m/(k-n+2)?i:m/(k-n+2); if(m<=k)i=i>n/(k-m+2)?i:n/(k-m+2); cout<<i<<endl; } return 0; }