小弟我的程式碼 : 我都一直TLE... #include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char EOF;
int max=0,min=999999;
int a,b,x,y,i,j;
int p[50000];
while(scanf("%d%d",&a,&b)!=EOF)
{
for(i=1;i<=a;i++)
cin>>p[i];
for(j=0;j<b;j++)
{
cin>>x>>y;
for(i=x;i<=y;i++)
{
if(p[i]>max)
max=p[i];
if(p[i]<min)
min=p[i];
}
cout<<max-min<<endl;
max=0;min=999999;
}
}
return 0;
}
本題目共 5 個測試點,您的程式共通過 4 個測試點。(score:70)
獲得部分分數 70 分。
錯誤訊息如下:
*** 第 1 點 (10%):AC (8ms, 748KB)
*** 第 2 點 (10%):AC (12ms, 756KB)
*** 第 3 點 (20%):AC (148ms, 784KB)
*** 第 4 點 (30%):AC (728ms, 940KB)
*** 第 5 點 (30%):TLE (1s)
執行逾時(1s)!! 請檢查是否產生無限迴圈或尋找更好的演算法
可能原因為:
* 讀取測資視時未考慮到 EOF 導致等待過久,請參考 a001 的範例程式。
* 使用的演算法效率不夠。 <-又是第5個= =..麻煩各位大大幫助無助的小弟我T.T
小弟我的程式碼 : 我都一直TLE... #include
#include
#include
using namespace std;
int main()
{
char EOF;
int max=0,min=999999;
int a,b,x,y,i,j;
int p[50000];
while(scanf("%d%d",&a,&b)!=EOF)
{
for(i=1;i<=a;i++)
cin>>p[i];
for(j=0;j
{
cin>>x>>y;
for(i=x;i<=y;i++)
{
if(p[i]>max)
max=p[i];
if(p[i]
min=p[i];
}
cout<<
max=0;min=999999;
}
}
return 0;
}
本題目共 5 個測試點,您的程式共通過 4 個測試點。(score:70)
獲得部分分數 70 分。
錯誤訊息如下:
*** 第 1 點 (10%):AC (8ms, 748KB)
*** 第 2 點 (10%):AC (12ms, 756KB)
*** 第 3 點 (20%):AC (148ms, 784KB)
*** 第 4 點 (30%):AC (728ms, 940KB)
*** 第 5 點 (30%):TLE (1s)
執行逾時(1s)!! 請檢查是否產生無限迴圈或尋找更好的演算法
可能原因為:
* 讀取測資視時未考慮到 EOF 導致等待過久,請參考 a001 的範例程式。
* 使用的演算法效率不夠。 <-又是第5個= =..麻煩各位大大幫助無助的小弟我T.T
cin cout 改成 scanf printf