自己想了很復雜,還考慮了追擊再追擊的問題,結果做到最后還給了個WA。。faint

查了資料,換個角度想問題居然那么簡單。。。。

事實上,只要問自己一個問題就能解決這道題,Charley是和哪一位同時到達?

沒錯,答案是和最早到達的那個人一起到達的(當然,出發時間<0的不算了)。也就是把問題轉化為求出每個人到達的時間即可。


#include<stdio.h>
#define N 100
int main()
{
    
int arr_time,last;
    
int num;
    
int ii,jj,kk;
    
int speed;
    
float tmp;
    
for(;scanf("%d",&num);)
    
{
        
if(!num)
            
return 1;
        
for(ii=0,last=10000;ii<num;ii++)
        
{
            scanf(
"%d%d",&speed,&kk);
            
if(kk>=0)
            
{
                tmp
=3600*4.5/speed+kk;
                
/*printf("tmp:%f  %d",tmp,(int)tmp);*/
                
if(tmp-(int)tmp<.001)
                    arr_time
=(int )tmp;
                
else
                    arr_time
=1+(int )tmp;
                last
= ( arr_time<last)?arr_time:last;
                
/* printf("last%d",last);*/
            }

        }

        printf(
"%d\n",last);
    }

}