萌新求助贪心
查看原帖
萌新求助贪心
352328
AdventureExtremeX楼主2020/7/27 10:11

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;
}
2020/7/27 10:11
加载中...