您的位置:首页 > 其它

cf 450c Jzzhu and Chocolate

2016-05-09 15:06 513 查看
Jzzhu and Chocolate

time limit per test
1 second

memory limit per test
256 megabytes

input
standard input

output
standard output

Jzzhu has a big rectangular chocolate bar that consists of n × m unit squares. He wants to cut this bar exactly k times. Each cut must meet the following requirements:

each cut should be straight (horizontal or vertical);

each cut should go along edges of unit squares (it is prohibited to divide any unit chocolate square with cut);

each cut should go inside the whole chocolate bar, and all cuts must be distinct.

The picture below shows a possible way to cut a 5 × 6 chocolate for 5 times.

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
long long  n,m,k;
while(~scanf("%I64d%I64d%I64d",&n,&m,&k))
{
if(n>=k+1||m>=k+1)
{
long long  maxx=max(n,m);
long long  minn=min(n,m);
long long  cl1=minn/(1+k);
long long cl2=maxx/(1+k);
//cout<<minn<<endl<<maxx<<endl<<cl1<<endl<<cl2<<endl;
long long tmpma=0;
long long tmpmi=0;
tmpmi=maxx*cl1;
tmpma=minn*cl2;
long long ans=max(tmpmi,tmpma);
if(ans>0) printf("%I64d\n",ans);
//printf("%I64d\n",maxx/(k+1)*minn);
continue;
}
long long  minn=min(n,m);
long long maxx=max(n,m);
long long  cl1=k-minn+1;
long long cl2=k-maxx+1;
//cout<<minn<<endl<<maxx<<endl<<cl1<<endl<<cl2<<endl;
long long tmpma=0;
long long tmpmi=0;
if(cl1<maxx) tmpmi=maxx/(cl1+1);
if(cl2<minn) tmpma=minn/(cl2+1);
long long ans=max(tmpmi,tmpma);
if(ans>0) printf("%I64d\n",ans);
else printf("-1\n");
}
return 0;
}//20180805


View Code

我感觉这道题是一种很巧妙的暴力,枚举可能的四种情况,取最大值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: