比赛 20151019 评测结果 AAAWAAAAAW
题目名称 爬山 最终得分 80
用户昵称 Satoshi 运行时间 0.003 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2015-10-19 21:22:23
显示代码纯文本
#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-=1;
	s=b-a;
	l=up(s,d);
	//cout<<n<<' '<<d<<' '<<a<<' '<<b<<endl;
	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;
}