代码如下:
#include<iostream>
using namespace std;
int a[1005],b[1005],room[6];
int n;
int sum=0;
void find(){
int c1,c2;
for(int i=1; i<=n; i++)
if(a[i]==1)
c1++;
else if(a[i]==2)
c2++;
room[1]=c1;
room[2]=c1+c2;
room[3]=n;
for(int i=1; i<=room[1]; i++)
b[i]=1;
for(int i=room[1]+1; i<=room[2]; i++)
b[i]=2;
for(int i=room[2]+1; i<=room[3]; i++)
b[i]=3;
return;
}
void scan_1(){
for(int i=1; i<=n; i++)
if(a[i]!=b[i])
for(int j=room[a[i]-1]+1; j<=room[a[i]]; j++)
if(a[j]==b[i]&&a[i]==b[j]){
swap(a[i],a[j]);
sum++;
}
return;
}
void scan_2(){
for(int i=1; i<=n; i++)
if(a[i]!=b[i])
for(int j=room[a[i]-1]+1; j<=room[a[i]]; j++)
if((a[j]==b[i]||a[i]==b[j])&&a[i]!=a[j]){
swap(a[i],a[j]);
sum++;
}
return;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
cin>>a[i];
find();
scan_1();
scan_2();
cout<<sum;
return 0;
}
问题:运行可以,提交后全RE,复制IDE并输入样例,输出0。
谁能帮忙看看啊