# |
Author |
Problem |
Lang |
Verdict |
Time |
Memory |
Sent |
Judged |
|
116187499 |
Practice:
alexrider |
1515D
- 28
|
C++17 (GCC 9-64)
|
Wrong answer on test 3
|
15 ms
|
4204 KB
|
2021-05-14 17:12:03 |
2021-05-14 17:12:03 |
|
#include<bits/stdc++.h>
using namespace std;
#define ll long long
void solve(){
int n,ln,rn;cin>>n>>ln>>rn;
vector<int>l(n+1,0),r(n+1,0);
for(int i=1;i<=ln;i++){
int tmp;cin>>tmp;l[tmp]++;
}
for(int i=1;i<=rn;i++){
int tmp;cin>>tmp;r[tmp]++;
}
for(int i=1;i<=n;i++){
if(l[i]>=1 && r[i]>=1) {
if(l[i]>=r[i]) {l[i]-=r[i];ln-=r[i];rn-=r[i];r[i]=0;}
else {r[i]-=l[i];rn-=l[i];ln-=l[i];l[i]=0; }
}
}
if(ln==rn) {
cout<<ln<<'\n';return;
}
int cost=0;
for(int i=1;i<=n;i++){
if(l[i]>=1) {cost+=l[i]/2;ln+=(l[i]%2-l[i]);}
if(r[i]>=1) {cost+=r[i]/2;rn+=(r[i]%2-r[i]);}
}
if(ln>=rn){
cost+=(ln-rn);
ln-=(ln-rn);
cost+=ln;
}else if(rn>ln){
cost+=(rn-ln);
rn-=(rn-ln);cost+=rn;
}
cout<<cost<<'\n';
}
int main(){
int t;cin>>t;
while(t--) solve();
}
Click to see test details