记录编号 196667 评测结果 AAAAAAAAAAAAAAAA
题目名称 [Ural 1031] 火车票 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.381 s
提交时间 2015-10-22 06:19:00 内存使用 0.46 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #define Min(a,b) ((a)>(b)?(b):(a))
  5. using namespace std;
  6. int L1,L2,L3,C1,C2,C3;
  7. int n,s,t;
  8. long long f[10005],dis[10005];
  9. int main(){
  10. freopen("rail.in","r",stdin);
  11. freopen("rail.out","w",stdout);
  12. scanf("%d%d%d%d%d%d",&L1,&L2,&L3,&C1,&C2,&C3);
  13. scanf("%d",&n); scanf("%d%d",&s,&t);
  14. if(s>t) swap(s,t);
  15. for(int i=2;i<=n;++i) scanf("%lld",&dis[i]);
  16. memset(f,0x3f,sizeof(f));
  17. f[s]=0;
  18. for(int i=s;i<=n;++i)
  19. for(int j=i-1;j>=s;--j){
  20. if(dis[i]-dis[j]<=L1) {
  21. f[i]=Min(f[i],f[j]+C1); continue;
  22. }
  23. if(dis[i]-dis[j]<=L2) {
  24. f[i]=Min(f[i],f[j]+C2); continue;
  25. }
  26. if(dis[i]-dis[j]<=L3) {
  27. f[i]=Min(f[i],f[j]+C3); continue;
  28. }
  29. break;
  30. }
  31. printf("%lld",f[t]);
  32. getchar();getchar();
  33. }