#3290: 這樣寫為什麼會TLE?


menghengincollege (孟亨)

學校 : 國防大學
編號 : 7556
來源 : [219.69.30.53]
最後登入時間 :
2013-05-17 13:31:20
d448. 好熱好熱 -- Xatier | From: [219.69.59.86] | 發表日期 : 2010-01-18 15:24

> #include<stdio.h>
> #include <stdlib.h>
> int main(void)
> {
> int t1;
> int t2;
> int t3;
> int x1;
> int x3;
> double a;
> double b;
> double c;
> while(scanf("%d %d %d %d %d",&t1,&t2,&t3,&x1,&x3)!=EOF){
> b=double(x1-x3)*(t2-t3);
> c=double(t1-t3);
> a=b/c+x3;
> printf("%.6f\n",a);
> }
> return 0;
> }
>
>
>
> 結果:
>
> *** 第 1 點 (75%):AC (4ms, 744KB)
> *** 第 2 點 (25%):TLE (1s)
>
>
 
#3293: Re:這樣寫為什麼會TLE?


example (學姊)

學校 : 臺北市立麗山高級中學
編號 : 6634
來源 : [60.250.138.144]
最後登入時間 :
2022-08-09 17:07:42
d448. 好熱好熱 -- Xatier | From: [118.166.117.253] | 發表日期 : 2010-01-18 16:59

> #include
> #include
> int main(void)
> {
> int t1;
> int t2;
> int t3;
> int x1;
> int x3;
> double a;
> double b;
> double c;
> while(scanf("%d %d %d %d %d",&t1,&t2,&t3,&x1,&x3)!=EOF){
> b=double(x1-x3)*(t2-t3);
> c=double(t1-t3);
> a=b/c+x3;
> printf("%.6f\n",a);
> }
> return 0;
> }
>
>
>
> 結果:
>
> *** 第 1 點 (75%):AC (4ms, 744KB)
> *** 第 2 點 (25%):TLE (1s)
>
>

 試試看把 while() 迴圈裡的 != EOF 改成 == 5

 應該會比較快

 你也可以把所有變數的型態都設定為 double 

 這樣就不用轉型態了

 
ZeroJudge Forum