我不会什么高端算法,只会一些基础算法,求调,希望用我能看懂的方法QAQ,学会了就关注。 附上本蒟蒻的垃圾代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,js,A=1,B=1,C=1;
cin>>n;
int a[10005]={0},b[10005]={0},c[10005]={0};
for(int i=1;i<=n;i++)
{
cin>>js;
if(js%3==0)
{
a[A]=js;
A++;
}
if(js%3==1)
{
b[B]=js;
B++;
}
if(js%3==2)
{
c[C]=js;
C++;
}
}
if(A<min(B,C))
{
cout<<"No"<<endl;
return 0;
}
if(A>max(B,C))
{
cout<<"No"<<endl;
return 0;
}
if(B==C)
{
cout<<"Yes"<<endl;
for(int i=1;i<=B;i++)
cout<<b[i]<<" "<<a[i]<<" "<<c[i]<<" ";
}
if(B<C)
{
cout<<"Yes"<<endl;
for(int i=1;i<=B;i++)
cout<<b[i]<<" "<<a[i]<<" "<<c[i]<<" ";
for(int i=B+1;i<=A;i++)
cout<<a[i]<<" "<<c[i]<<" ";
for(int i=A+1;i<=C;i++)
cout<<c[i]<<" ";
cout<<endl;
}
if(B>C)
{
cout<<"Yes"<<endl;
for(int i=1;i<=C;i++)
cout<<c[i]<<" "<<a[i]<<" "<<b[i]<<" ";
for(int i=C+1;i<=A;i++)
cout<<a[i]<<" "<<b[i]<<" ";
for(int i=A+1;i<=B;i++)
cout<<b[i]<<" ";
cout<<endl;
}
return 0;
}
%%%