aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-05-28 17:21:08 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-05-28 17:21:08 +0800
commit4634308d50b5b1e4f993c495a8bb51edac9f94bd (patch)
tree0fd5f2adb1b83e35cc736708bd1f2883c3b1beb2
parentbb38d33aa36be7e7cd6f55d1adb0b4795fcc4001 (diff)
downloadcsp-4634308d50b5b1e4f993c495a8bb51edac9f94bd.tar.gz
csp-4634308d50b5b1e4f993c495a8bb51edac9f94bd.tar.xz
41-balance
-rw-r--r--41/balance.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/41/balance.cc b/41/balance.cc
new file mode 100644
index 0000000..b379f0d
--- /dev/null
+++ b/41/balance.cc
@@ -0,0 +1,39 @@
+#include <bits/stdc++.h>
+using namespace std;
+
+bool is_balance(int a) {
+ int one_num = 0;
+ int zero_num = 0;
+ while (a != 0)
+ {
+ if ((a & 1) == 0) {
+ zero_num++;
+ } else {
+ one_num++;
+ }
+ a = a >> 1;
+ }
+ if (one_num == zero_num) {
+ return true;
+ }
+ return false;
+}
+
+int main() {
+ ios::sync_with_stdio(false);
+ cin.tie(nullptr);
+ int n;
+ cin >> n;
+ vector<int> a(n);
+ for (int i = 0; i < n; ++i) {
+ cin >> a[i];
+ }
+ int cnt = 0;
+ for (int i = 0; i < n; ++i) {
+ if (is_balance(a[i])) {
+ cnt++;
+ }
+ }
+ cout << cnt << endl;
+ return 0;
+} \ No newline at end of file