zoukankan      html  css  js  c++  java
  • Educational Journey

           Educational Journey

    The University of Calgary team qualified for the 28th ACM
    International Collegiate Programming Contest World Finals
    in Prague, Czech Republic. Just by using the initials of team
    members they got a very cunning team name: ACM (Alecs,
    Celly and Monny). In order to prepare for the contest, they
    have decided to travel to Edmonton to learn the tricks of trade
    from Dilbert, Alberta-wide famous top-coder.
    Due to a horrible miscommunication which is as welcome
    as a plague among such teams, A, C and M drive from Calgary
    to Edmonton in separate cars. To make things worse,
    there was also a miscommunication with D, who being always
    so helpful, decides to go to Calgary in order to save the team
    a trip to the far, freezing North. All this happens on the same
    day and each car travels at a constant (but not necessarily the
    same) speed on the famous Alberta #2.
    Then A passed C and M at time t1 and t2, respectively,
    and met D at time t3. D met C and M at times t4 and t5,
    respectively. The question is: at what time did C pass M?

    Input
    The input is a sequence of lines, each containing times t1, t2,
    t3, t4 and t5, separated by white space. All times are distinct and given in increasing order. Each time
    is given in the hh : mm : ss format on the 24-hour clock. A line containing ‘-1’ terminates the input.


    Output
    For each line of input produce one line of output giving the time when C passed M in the same format
    as input, rounding the seconds in the standard way.


    Sample Input
    10:00:00 11:00:00 12:00:00 13:00:00 14:00:00
    10:20:00 10:58:00 14:32:00 14:59:00 16:00:00
    10:20:00 12:58:00 14:32:00 14:59:00 16:00:00
    08:00:00 09:00:00 10:00:00 12:00:00 14:00:00
    -1


    Sample Output
    12:00:00
    11:16:54
    13:37:32
    10:40:00

    题意:A,C,M在一条线上,v_a>v_c>v_m.

    AC相遇在t1,AM相遇在t2,A到D的时间为t3,C到D为t4,M到d为t5

    求CM相遇的时间

    tip:注意时间是时刻,不是时间段,不是经过多少时间才到的;

      数学运算得:t=(v_a-v_d)*(t2-t1)/(v_c-v_d)+0.5+t1;

      0.5是为了误差,四舍五入;t1是原始要加的

     1 #include<iostream>//wrong
     2 #include<cmath>
     3 #include<cstring>
     4 #include<cstdio>
     5 
     6 using namespace std;
     7 
     8 char ss[100];
     9 int h,m,s;
    10 
    11 int change(char *ss)
    12 {
    13     sscanf(ss,"%d:%d:%d",&h,&m,&s);
    14     return h*3600+m*60+s;
    15 }
    16 
    17 int main()
    18 {
    19     while(scanf("%s",ss)==1&&strcmp(ss,"-1")!=0)
    20     {
    21         double t[10];
    22         memset(t,0,sizeof(t));
    23         t[1]=change(ss);
    24         for(int i=2;i<=5;i++)
    25         {
    26             scanf("%s",ss);
    27             t[i]=change(ss);
    28         }
    29 
    30         double v_c=(t[3]-t[1])/(t[4]-t[1]);
    31         double v_m=(t[3]-t[2])/(t[5]-t[2]);
    32         int ans=(1.0-v_m)*(t[2]-t[1])/(v_c-v_m)+0.5+t[1];
    33 
    34         int ss=ans%60;
    35         ans/=60;
    36         int mm=ans%60;
    37         ans/=60;
    38         int hh=ans%24;
    39         printf("%02d:%02d:%02d
    ",hh,mm,ss);
    40 
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    jmeter压测,json提取器的使用
    pycharm安装
    安装numpy+mkl
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
    windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的解决方式
    mapreduce 设置递归读取输入文件
    设置reduce Task数量
    kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
    mahout RecommenderJob 参数含义
    idea 配置日志输出等级debug
  • 原文地址:https://www.cnblogs.com/moqitianliang/p/4680512.html
Copyright © 2011-2022 走看看