这是赛时的代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int n,m,x,y,k;
cin>>n>>m>>x>>y>>k;
int ans=(int)(n/x)*(int)(m/y);
if(n%x==0)ans--;
if(m%y==0)ans--;
cout<<ans/k+1<<' '<<ans+1;
}
做题时的思路和题解差不多,但是代码纯属胡搞,最终还是胡搞过了
赛后看完题解之后略做了一些修改:
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int n,m,x,y,k;
cin>>n>>m>>x>>y>>k;
int ans=(int)(n/x)*(int)(m/y)-1;
if(n%x!=0)ans++;
if(m%y!=0)ans++;
cout<<ceil(1.0*ans/k)<<' '<<ans;
}
但是这个代码只有 50 分,而改称下面这个代码却能 100 分呢
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int n,m,x,y,k;
cin>>n>>m>>x>>y>>k;
int ans=(int)(n/x)*(int)(m/y)-1;
if(n%x!=0)ans++;
if(m%y!=0)ans++;
cout<<ans/k+(ans%k!=0)<<' '<<ans;
}
是 ceil 的问题吗?