比赛 |
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;
}