rt.目前只有50pts(4WA4AC)
代码如下。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int pai[1050],num,one=0,two=0,three=0;
long long anser=0;
int main(){
cin>>num;
for(int i=0;i<num;i++)
{
cin>>pai[i];
if(pai[i]==1)
{
one++;
}
else{
if(pai[i]==2)
{
two++;
}
else
{
three++;
}
}
}/*
for(int i=0;i<num;i++)
{
cout<<pai[i]<<",";
if(i==one-1||i==one+two-1||i==one+two+three-1)cout<<"|";
}
cout<<endl;*/
for(int i=0;i<one;i++)
{
if(pai[i]==2)
{
for(int j=one;j<two+one;j++)
{
if(pai[j]==1){swap(pai[j],pai[i]);anser++;break;}
}
}
if(pai[1]==3)
{
for(int j=two;j<two+three;j++)
{
if(pai[j]==1){swap(pai[j],pai[i]);anser++;break;}
}
}
}
for(int i=one;i<one+two;i++)
{
if(pai[i]==3)
{
for(int j=two+one;j<num;j++)
{
if(pai[j]==2){swap(pai[j],pai[i]);anser++;break;}
}
}
}/*
for(int i=0;i<num;i++)
{
cout<<pai[i]<<",";
if(i==one-1||i==one+two-1||i==one+two+three-1)cout<<"|";
}
cout<<endl;*/
/////////////////////////////////////////////////////////////////////////////////////////////////////
for(int i=0;i<one;i++)
{
if(pai[i]==2)
{
for(int j=one;j<two+one;j++)
{
if(pai[j]==3){
for(int q=one+two;q<num;q++)
{
if(pai[q]==1){swap(pai[j],pai[i]);swap(pai[i],pai[q]);swap(pai[j],pai[q]);anser+=2;break;}
}
}
}
}
if(pai[i]==3)
{
for(int j=one;j<two+one;j++)
{
if(pai[j]==1){
for(int q=one+two;q<num;q++)
{
if(pai[q]==2){swap(pai[j],pai[i]);swap(pai[i],pai[q]);swap(pai[j],pai[q]);anser+=2;break;}
}
}
}
}
}/*
for(int i=0;i<num;i++)
{
cout<<pai[i]<<",";
if(i==one-1||i==one+two-1||i==one+two+three-1)cout<<"|";
}
cout<<endl;*/
cout<<anser;
return 0;
}