#include <iostream>
#include <unordered_set>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie();
int n, k, x, old, zero, zaj;
long long ans;
std::unordered_set<int> use;
std::cin >> k >> n;
old = n;
ans = n;
for (int i = 1; i < k; i++) {
std::cin >> n;
zero = 0;
use.clear();
zaj = 0;
for (int j = 0; j < n; j++) {
std::cin >> x;
if (x == 0) {
zero++;
}
else {
if (use.find(x) != use.end()) {
ans++;
zaj++;
}
else {
use.insert(x);
zaj++;
}
}
}
if (ans - zaj < zero) {
ans += zero - ans - zaj;
}
old = n;
}
std::cout << ans;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <iostream> #include <unordered_set> int main() { std::ios::sync_with_stdio(false); std::cin.tie(); int n, k, x, old, zero, zaj; long long ans; std::unordered_set<int> use; std::cin >> k >> n; old = n; ans = n; for (int i = 1; i < k; i++) { std::cin >> n; zero = 0; use.clear(); zaj = 0; for (int j = 0; j < n; j++) { std::cin >> x; if (x == 0) { zero++; } else { if (use.find(x) != use.end()) { ans++; zaj++; } else { use.insert(x); zaj++; } } } if (ans - zaj < zero) { ans += zero - ans - zaj; } old = n; } std::cout << ans; return 0; } |
English