很好奇那里出问题了,思路与题解差不多,只是把3种情况分开写了,但只有40分?
#include <bits/stdc++.h>
using namespace std;
int n,m,x,y,k;
int main ()
{
cin>>n>>m>>x>>y>>k;
int days=0,yd=0;
int a=(n/x),b=(m/y);
if(n%x==0&&m%y==0)//若 a=x,b=y,无需额外加点,每有一个不等于的,需加一个点。
{
yd=a*b-1;
if(k>=yd)
days=1;
else
{
if(yd%k==0)
days=yd/k;
else
days=yd/k+1;
}
cout<<days<<' '<<yd;return 0;
}
else if((n%x==0&&m%y!=0)||(n%x!=0&&m%y==0))//一个不等于
{
yd=a*b;
if(k>=yd)
days=1;
else
{
if(yd%k==0)
days=yd/k;
else
days=yd/k+1;
}
cout<<days<<' '<<yd;return 0;
}
else if(m%y!=0&&n%x!=0)//两个不等于
{
yd=a*b+1;
if(k>=yd)
days=1;
else
{
if(yd%k==0)
days=yd/k;
else
days=yd/k+1;
}
cout<<days<<' '<<yd;return 0;
}
return 0;
}