#18966: cpp TLE 求救!!!


kolagh7486 (電腦前的咖啡)

學校 : 國立臺中高級工業職業學校
編號 : 88363
來源 : [1.200.121.142]
最後登入時間 :
2022-09-24 16:06:42
c010. 10107 - What is the Median? -- UVa10107 | From: [220.140.10.90] | 發表日期 : 2019-08-18 17:54

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
   vector<int> value;
   value.reserve(10000);
   int temp,count=0;
   while (cin >> temp)
   {
      value.push_back(temp);

      int num = count + 1;
      sort(value.begin(), value.end());

      int median_index = num / 2;
      if ((num % 2) != 0)
     {
         if (num == 1)
            cout << value[0] << endl;
         else
            cout << value[median_index] << endl;
     }
     else
         cout << (value[median_index - 1] + value[median_index]) / 2 << endl;

     count++;
   }

}

 

 
#18967: Re:cpp TLE 求救!!!


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.132.249]
最後登入時間 :
2024-05-07 23:09:03
c010. 10107 - What is the Median? -- UVa10107 | From: [61.223.42.43] | 發表日期 : 2019-08-18 18:29

問題時,用中文敘述您的想法,可能比較能獲得好的建議。

直接把龐雜的程式碼貼上來,可能得不到幫助。



 
#18968: Re:cpp TLE 求救!!!


jackyname1@gmail.com (☆♬○♩程式家小崴●♪✧♩)

學校 : 基隆市私立二信高級中學
編號 : 77382
來源 : [114.32.51.178]
最後登入時間 :
2022-04-12 19:45:18
c010. 10107 - What is the Median? -- UVa10107 | From: [114.45.79.172] | 發表日期 : 2019-08-18 19:40

#include
#include
#include

using namespace std;

int main()
{
   vector value;
   value.reserve(10000);
   int temp,count=0;
   while (cin >> temp)
   {
      value.push_back(temp);

      int num = count + 1;
      sort(value.begin(), value.end());

      int median_index = num / 2;
      if ((num % 2) != 0)
     {
         if (num == 1)
            cout << value[0] << endl;
         else
            cout << value[median_index] << endl;
     }
     else
         cout << (value[median_index - 1] + value[median_index]) / 2 << endl;

     count++;
   }

}

 

 

value.reserve() 之後 就不用 使用 push_back() 囉!
可以直接 value[x] 這樣 呼叫 

希望有幫到您! ~ :) 

 
#18971: Re:cpp TLE 求救!!!


kolagh7486 (電腦前的咖啡)

學校 : 國立臺中高級工業職業學校
編號 : 88363
來源 : [1.200.121.142]
最後登入時間 :
2022-09-24 16:06:42
c010. 10107 - What is the Median? -- UVa10107 | From: [220.140.10.90] | 發表日期 : 2019-08-18 19:45

#include
#include
#include

using namespace std;

int main()
{
   vector value;
   value.reserve(10000);
   int temp,count=0;
   while (cin >> temp)
   {
      value.push_back(temp);

      int num = count + 1;
      sort(value.begin(), value.end());

      int median_index = num / 2;
      if ((num % 2) != 0)
     {
         if (num == 1)
            cout << value[0] << endl;
         else
            cout << value[median_index] << endl;
     }
     else
         cout << (value[median_index - 1] + value[median_index]) / 2 << endl;

     count++;
   }

}

 

 

value.reserve() 之後 就不用 使用 push_back() 囉!
可以直接 value[x] 這樣 呼叫 

希望有幫到您! ~ :) 

試過了QQ


 
#20684: Re:cpp TLE 求救!!!


twm0970420996@gmail.com (小胖胖胖)

學校 : 不指定學校
編號 : 94884
來源 : [122.116.200.57]
最後登入時間 :
2020-07-13 23:16:38
c010. 10107 - What is the Median? -- UVa10107 | From: [114.26.3.87] | 發表日期 : 2020-02-20 22:42

#include
#include
#include

using namespace std;

int main()
{
   vector value;
   value.reserve(10000);
   int temp,count=0;
   while (cin >> temp)
   {
      value.push_back(temp);

      int num = count + 1;
      sort(value.begin(), value.end());

      int median_index = num / 2;
      if ((num % 2) != 0)
     {
         if (num == 1)
            cout << value[0] << endl;
         else
            cout << value[median_index] << endl;
     }
     else
         cout << (value[median_index - 1] + value[median_index]) / 2 << endl;

     count++;
   }

}

 

 

value.reserve() 之後 就不用 使用 push_back() 囉!
可以直接 value[x] 這樣 呼叫 

希望有幫到您! ~ :) 

試過了QQ




請問用vector有比較方便嗎?

 
ZeroJudge Forum