1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include <stdio.h>
int main(int argc, const char * argv[]) {
int l; int N, C, T; int VR, VT1, VT2; int path[102]; double dp[102]; while (scanf("%d", &l) != EOF) { scanf("%d %d %d", &N, &C, &T); scanf("%d %d %d", &VR, &VT1, &VT2); for (int i=1; i<=N; i++) { scanf("%d", &path[i]); } path[0]=0; path[N+1]=l; dp[0] = 0; for (int i=1; i<=N+1; i++) { double min = 1000000; for (int j = 0; j<i; j++) { double temp; if (path[i] - path[j] > C) temp = dp[j] + C * 1.0 / VT1 + (path[i]-path[j]-C) * 1.0 / VT2; else temp = dp[j] + (path[i] - path[j]) * 1.0 / VT1; if (j > 0) temp += T; if (temp < min) min = temp; } dp[i] = min; } double rt; rt = l * 1.0 / VR; if(dp[N+1] < rt) printf("What a pity rabbit!\n"); else printf("Good job,rabbit!\n"); }
return 0; }
|