比赛 20151019 评测结果 AAAWAWWWWW
题目名称 爬山 最终得分 40
用户昵称 liuliuliu 运行时间 0.003 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-10-19 21:04:56
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <climits>
  7. using namespace std;
  8.  
  9. long long n;
  10. int d,a,b;//n看做还移动几次,a表示较低点,b表示较高点
  11. int cha;//cha表示两点之间的高度差
  12. bool f;
  13. int main()
  14. {
  15. freopen("mountain.in","r",stdin);
  16. freopen("mountain.out","w",stdout);
  17. scanf("%d%d%d%d",&n,&d,&a,&b);
  18. n--;
  19. if(a<0 && b<0)
  20. {
  21. a+=1000;
  22. b+=1000;
  23. f=true;
  24. }
  25. if(a>b)
  26. {
  27. int t;
  28. t=a;a=b;b=t;
  29. }
  30. /*cha=b-a;
  31. while(cha>d)
  32. {
  33. n--;
  34. a+=d
  35. cha=b-a;
  36. }*/
  37. cha=b-a;
  38. n-=(cha/d);
  39. cha%=d;
  40. if(f)
  41. {
  42. a-=1000;
  43. b-=1000;
  44. }
  45. if(n==0)
  46. {
  47. cout<<b<<endl;
  48. return 0;
  49. }
  50. else if(cha==0)
  51. {
  52. cout<<d*(n/2)+b<<endl;
  53. return 0;
  54. }
  55. if(n%2==1)
  56. cout<<b+d*(n/2)<<endl;
  57. else
  58. cout<<a+d*(n/2)<<endl;
  59. return 0;
  60. }