Skip to content

Commit b17dce6

Browse files
committed
Code added to codeforces1144B file
1 parent 64019a6 commit b17dce6

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
void merge(vector <int> &v, int left,int mid,int right){
6+
int i = left;
7+
int j = mid+1;
8+
vector<int> temp;
9+
while(i<=mid && j<=right){
10+
if(v[i]<v[j]){
11+
temp.push_back(v[j]);
12+
j++;
13+
}
14+
else { temp.push_back(v[i]);
15+
i++;
16+
}
17+
}
18+
19+
while(i<=mid){
20+
temp.push_back(v[i]);
21+
22+
i++;
23+
}
24+
while(j<=right){
25+
temp.push_back(v[j]);
26+
j++;
27+
}
28+
29+
for(int i= left; i<=right; i++){
30+
v[i] = temp[i-left];
31+
}
32+
33+
}
34+
35+
void mergeSort(vector<int> &v,int l,int r){
36+
37+
if(l<r){
38+
int mid = (l+r)/2;
39+
mergeSort(v,l,mid);
40+
mergeSort(v,mid+1,r);
41+
merge(v,l,mid,r);
42+
}
43+
}
44+
45+
int sum(vector<int> v,int size){
46+
int sum = 0;
47+
for(int i=0; i<size; i++){
48+
sum+=v[i];
49+
}
50+
51+
return sum;
52+
}
53+
54+
int main() {
55+
//freopen("input.txt","r",stdin);
56+
int n;
57+
cin>>n;
58+
vector<int> v1;//odd
59+
vector<int> v2;
60+
61+
int sumAll = 0;
62+
for(int i=0; i<n; i++){
63+
int a;
64+
cin>>a;
65+
66+
sumAll+=a;
67+
if(a&1) v1.push_back(a);
68+
else v2.push_back(a);
69+
}
70+
71+
mergeSort(v1,0,v1.size()-1);
72+
mergeSort(v2,0,v2.size()-1);
73+
int size1=v1.size();
74+
int size2=v2.size();
75+
int range = min(v1.size(),v2.size());
76+
if(v1.size()>range) size1 = range+1;
77+
if(v2.size()>range) size2 = range+1;
78+
79+
int sum1 = sum(v1,size1);
80+
sum1+=sum(v2,size2);
81+
int ans = sumAll-sum1;
82+
cout<<ans<<endl;
83+
}

0 commit comments

Comments
 (0)