[C_AR188-易] 陣列元素
Time Limit: 1 seconds
問題描述 :
給一個整數陣列,裏面每個元素都是正整數,陣列的長度為 n 。請輸出陣列中的元素,這個元素的出現次數超過⌈n/2⌉ (即 >⌈n/2⌉)。
例如:陣列 arr 的長度為 4 : 1 1 1 3 ,那要輸出 1 ,因為 1 出現 3 次,且 3 > ⌈n/2⌉ = ⌈4/2⌉ = 2 。
輸入說明 :
輸入為一行字串,字串中包含了一群正整數,每個正整數都用空白隔開。字串中最多包含 500 個正整數。
輸出說明 :
計算 出現次數超過 ⌈n/2⌉的元素,並輸出,請輸出後,加一個換行符號。
若沒有任何元素其出現次數超過 ⌈n/2⌉次,那輸出 n/a 。之後也請加一個換行符號。
範例 :
問題描述 :
給一個整數陣列,裏面每個元素都是正整數,陣列的長度為 n 。請輸出陣列中的元素,這個元素的出現次數超過⌈n/2⌉ (即 >⌈n/2⌉)。
例如:陣列 arr 的長度為 4 : 1 1 1 3 ,那要輸出 1 ,因為 1 出現 3 次,且 3 > ⌈n/2⌉ = ⌈4/2⌉ = 2 。
輸入說明 :
輸入為一行字串,字串中包含了一群正整數,每個正整數都用空白隔開。字串中最多包含 500 個正整數。
輸出說明 :
計算 出現次數超過 ⌈n/2⌉的元素,並輸出,請輸出後,加一個換行符號。
若沒有任何元素其出現次數超過 ⌈n/2⌉次,那輸出 n/a 。之後也請加一個換行符號。
範例 :
Sample Input: | Sample Output: |
1 1 1 3 | 1 |
1 2 3 4 | n/a |
- #include <iostream>
- #include <string>
- #include <sstream>
- using namespace std;
- int main() {
- // [C_AR188-易] 陣列元素
- // g++(c++11)
- string input;
- int c[1000000];
- fill(c, c+1000000, 0);
- int count = 0;
- while(getline(cin, input))
- {
- //字串切割
- bool no = false;//沒結果
- stringstream ss(input);
- string token;
- while (getline(ss, token, ' '))
- {
- c[stoi(token)]++;
- count++;
- }
- for(int i = 0;i < 1000000;i++)
- {
- if(c[i] > (count/2))
- {
- cout << i << endl;
- no = true;
- }
- }
- if(no == false)
- {
- cout << "n/a" << endl;
- }
- }
- return 0;
- }
沒有留言:
張貼留言