题解 AT2447 【電子レンジ (Microwave) 】
Zenith_Yeh · · 题解
这道题只要分四种情况讨论即可。
- 当
(a<0,b<0) 时,我们只需要算(b-a)*c 即可。 - 当
(a<0,b\geq 0) 时,我们只需要算\operatorname{abs}(a)*c+d+b*e 即可。 (\operatorname{abs}(a) 就是a 到0 度的距离 ) - 当
(a=0) 时,我们只需要算d+b*e 即可。 - 当
(a=0) 时,我们只需要算(b-a)*e 即可。
上菜:
#include<bits/stdc++.h>
using namespace std;
inline int read()
{ int x=0;
bool f=0;
char c=getchar();
while(!isdigit(c))f|=(c=='-'),c=getchar();
while(isdigit(c))x=x*10+(c&15),c=getchar();
return f?-x:x;
}
int main()
{ int a=read(),b=read(),c=read(),d=read(),e=read(),ans;
if(a<0)//四种情况。
{ if(b<=0)ans=(b-a)*c;
else ans=abs(a)*c+d+b*e;
}
else
{ if(a==0)ans=d+b*e;
else ans=(b-a)*e;
}
cout<<ans<<endl;
return 0;
}