aboutsummaryrefslogtreecommitdiff
path: root/codechef/EvenEqualOdd
diff options
context:
space:
mode:
Diffstat (limited to 'codechef/EvenEqualOdd')
-rw-r--r--codechef/EvenEqualOdd/inp0
-rwxr-xr-xcodechef/EvenEqualOdd/mainbin0 -> 46120 bytes
-rw-r--r--codechef/EvenEqualOdd/main.cpp47
-rw-r--r--codechef/EvenEqualOdd/main_input0.txt7
-rw-r--r--codechef/EvenEqualOdd/main_input1.txt3
-rw-r--r--codechef/EvenEqualOdd/main_output0.txt3
-rw-r--r--codechef/EvenEqualOdd/main_output1.txt1
7 files changed, 61 insertions, 0 deletions
diff --git a/codechef/EvenEqualOdd/inp b/codechef/EvenEqualOdd/inp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/codechef/EvenEqualOdd/inp
diff --git a/codechef/EvenEqualOdd/main b/codechef/EvenEqualOdd/main
new file mode 100755
index 0000000..f246ca1
--- /dev/null
+++ b/codechef/EvenEqualOdd/main
Binary files differ
diff --git a/codechef/EvenEqualOdd/main.cpp b/codechef/EvenEqualOdd/main.cpp
new file mode 100644
index 0000000..9880c37
--- /dev/null
+++ b/codechef/EvenEqualOdd/main.cpp
@@ -0,0 +1,47 @@
+#include<bits/stdc++.h>
+
+using namespace std;
+
+int main () {
+ ios_base::sync_with_stdio(false);
+ cin.tie(NULL);
+ int tt;
+ cin >> tt;
+ while(tt--){
+ int n;
+ cin >> n;
+ vector<int> v(n * 2);
+ vector<int> even;
+ int ev = 0;
+ int odd = 0;
+ for(int &x : v) {
+ cin >> x;
+ ev += (x % 2 == 0);
+ odd += (x % 2 != 0);
+ if(x % 2 == 0) {
+ even.push_back(x);
+ }
+ }
+ vector<int> op;
+ for(int i = 0; i < even.size(); i++) {
+ int count = 1;
+ while((even[i] / 2 % 2) != 1) {
+ count++;
+ even[i] /= 2;
+ }
+ op.push_back(count);
+ }
+ sort(op.begin(), op.end());
+ if(ev == odd) {
+ cout << 0 << endl;
+ } else if(ev > odd){
+ int ans = 0;
+ for(int i = 0; i < (ev - odd) / 2; i++) {
+ ans += op[i];
+ }
+ cout << ans << endl;
+ } else {
+ cout << abs(ev - odd) / 2 << endl;
+ }
+ }
+}
diff --git a/codechef/EvenEqualOdd/main_input0.txt b/codechef/EvenEqualOdd/main_input0.txt
new file mode 100644
index 0000000..b63c2ad
--- /dev/null
+++ b/codechef/EvenEqualOdd/main_input0.txt
@@ -0,0 +1,7 @@
+3
+3
+1 2 3 4 5 6
+3
+1 3 4 8 2 6
+3
+1 5 3 5 6 7
diff --git a/codechef/EvenEqualOdd/main_input1.txt b/codechef/EvenEqualOdd/main_input1.txt
new file mode 100644
index 0000000..f57d886
--- /dev/null
+++ b/codechef/EvenEqualOdd/main_input1.txt
@@ -0,0 +1,3 @@
+1
+1
+1 1 \ No newline at end of file
diff --git a/codechef/EvenEqualOdd/main_output0.txt b/codechef/EvenEqualOdd/main_output0.txt
new file mode 100644
index 0000000..4539bbf
--- /dev/null
+++ b/codechef/EvenEqualOdd/main_output0.txt
@@ -0,0 +1,3 @@
+0
+1
+2
diff --git a/codechef/EvenEqualOdd/main_output1.txt b/codechef/EvenEqualOdd/main_output1.txt
new file mode 100644
index 0000000..56a6051
--- /dev/null
+++ b/codechef/EvenEqualOdd/main_output1.txt
@@ -0,0 +1 @@
+1 \ No newline at end of file