记录编号 |
195941 |
评测结果 |
AAAAAAAAAA |
题目名称 |
爬山 |
最终得分 |
100 |
用户昵称 |
Satoshi |
是否通过 |
通过 |
代码语言 |
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;
}