非最佳解 QQ
AC (0.1s, 296KB)
#include <stdlib.h>
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
int n;
unordered_map<int, int> rock; // 用 rock[x] = y
while (cin >> n) {
unordered_map<int, int>::const_iterator got = rock.find(n); // 尋找是否存在
if (got == rock.end()) { // 不存在
rock[n] = 1; // 建新的
} else {
rock[n]++; // 數量 +1
}
}
unordered_map<int, int>::const_iterator iter;
for (iter = rock.begin(); iter!=rock.end(); iter++) { // 類似 foreach
if (iter->second % 3) { // 如果除 3 有餘數
cout << iter->first; // 輸出 key
return 0;
}
}
return 0;
}
非最佳解 QQ
AC (0.1s, 296KB)
#include
#include
#include
using namespace std;
int main() {
int n;
unordered_map<int, int> rock; // 用 rock[x] = y
while (cin >> n) {
unordered_map<int, int>::const_iterator got = rock.find(n); // 尋找是否存在
if (got == rock.end()) { // 不存在
rock[n] = 1; // 建新的
} else {
rock[n]++; // 數量 +1
}
}
unordered_map<int, int>::const_iterator iter;
for (iter = rock.begin(); iter!=rock.end(); iter++) { // 類似 foreach
if (iter->second % 3) { // 如果除 3 有餘數
cout << iter->first; // 輸出 key
return 0;
}
}
return 0;
}
想請教一下,如果不用stringstream來處理,是如何知道輸入測資何時結束的
非最佳解 QQ
AC (0.1s, 296KB)
#include
#include
#include
using namespace std;
int main() {
int n;
unordered_map<int, int> rock; // 用 rock[x] = y
while (cin >> n) {
unordered_map<int, int>::const_iterator got = rock.find(n); // 尋找是否存在
if (got == rock.end()) { // 不存在
rock[n] = 1; // 建新的
} else {
rock[n]++; // 數量 +1
}
}
unordered_map<int, int>::const_iterator iter;
for (iter = rock.begin(); iter!=rock.end(); iter++) { // 類似 foreach
if (iter->second % 3) { // 如果除 3 有餘數
cout << iter->first; // 輸出 key
return 0;
}
}
return 0;
}想請教一下,如果不用stringstream來處理,是如何知道輸入測資何時結束的
一般的測資方式在輸入所有的資料完後會輸入EOF
但while loop 的 cin >> n 是不吃EOF的 所以會自動跳掉
如果要輸入EOF 可以使用ctrl+z