1627. Binary Code

Andrew-Malcom

include

using namespace std;
map<int,int>mp;
int main()
{
        ios::sync_with_stdio(false);cin.tie(0);
        int n;cin>>n;
        int arry[n],so[n];
        for(int i=0;i<n;i++){
                cin>>arry[i];
        }
        int one[20001],zero[20001];
        int index0=0,index1=0,sum0=0,sum1=0;
        for(int i=0;i<n;i++){
                if(arry[i]==0){zero[index0++]=i;sum0++;}
                if(arry[i]==1){one[index1++]=i;sum1++;}
        }
        for(int i=0;i<index0;i++){
                mp[i]=zero[i];
        }
        for(int i=index0;i<n;i++){
                mp[i]=one[i-index0];
        }
        int output[n]={0};
        for(int i=0,j=0;i<n;i++){
                output[i]=arry[mp[j]];
                j=mp[j];
        }
        int cnt1=0,cnt0=0;
        for(int i=0;i<n;i++){
                if(output[i]==0) cnt0++;
                else cnt1++;
        }
        if(cnt1==sum1&&cnt0==sum0){
                for(int i=0;i<n;i++) cout<<output[i]<<" ";
        }
        else cout<<-1;
}
lucaschen2000

这个算法秀啊,大佬nb

你当前正在回复 博客/题目
存在问题!