链接:https://codeforces.com/contest/1490
解析:此题的思路很简单,分别算出C0、C1、C2的值,最终使C0=C1=C2=n/3即可
注意:C0只能+1,即C0转化为C1,转化X个,则,C0-X,C1+X,ans+X,使C0=n/3,C1,C2同理。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,a,n;
int main(){
cin>>t;
while(t--){
cin>>n;
int c0=0,c1=0,c2=0,ans=0;
for(int i=1;i<=n;i++) {
cin>>a;
if(a%3==0) c0++;
else if(a%3==1) c1++;
else c2++;
}
int m=n/3;
while(!(c0==m&&c1==m&&c2==m)){
if(c0>m){
ans+=c0-m;
c1+=c0-m;
c0=m;
}
if(c1>m){
ans+=c1-m;
c2+=c1-m;
c1=m;
}
if(c2>m){
ans+=c2-m;
c0+=c2-m;
c2=m;
}
}
cout<<ans<<"\n";
}
}