记录编号 195941 评测结果 AAAAAAAAAA
题目名称 爬山 最终得分 100
用户昵称 GravatarSatoshi 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2015-10-20 13:10:37 内存使用 0.32 MiB
显示代码纯文本
#include <fstream>
//#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
ifstream cin("mountain.in");
ofstream cout("mountain.out");
ll n,s,d;
ll up(ll a,ll b)
{
	return (a+b-1)/b;
}
int main()
{
	ll a,b,basicx,basicy,ans,l,s0,s1,time;
	cin>>n>>d>>a>>b;
	n--;
	s=b-a;
	if(s<0)s=-s,a=b;
	l=up(s,d);
	if(l%2==0)
	{
		basicy=l;
		basicx=l+1;
		s0=s;
		s1=l*d;
	}
	else 
	{
		basicx=l;
		basicy=l+1;
		s0=l*d;
		s1=s;
	}
	//cout<<basicx<<' '<<basicy<<endl;
	if(n%2==0)
	{
		time=(n-basicy)/2;
		ans=time*d+s0;
	}
	else
	{
		time=(n-basicx)/2;
		ans=(n-basicx)/2*d+s1;
	}
	ans+=a;
	cout<<ans<<endl;
	return 0;
}