题解 P5412 【[YNOI2019]排队】

· · 题解

真正意义上的一道水题,感觉只有PJ减

注意一定要用cin>>和cout<<不然直接会WA掉我也不知道为啥

看完题,当然想到用两个数组分别存男女生,sort之后输出就行了

不多说,直接上代码

#include<bits/stdc++.h>
using namespace std;
bool a[10010];
double b1[10010],b2[10010];//b1是男生,b2是女生
int main()
{
    int T;
    cin>>T;
    while(T--)//T个查询
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];//读入男女
        }
        int cnt1=1,cnt2=1;
        for(int i=1;i<=n;i++)
        {
            double cnt3;
            cin>>cnt3;
            if(a[i]==1)//如果是男生
            {
                b1[cnt1]=cnt3;//读入的直接进入数组
                cnt1++; 
            }
            else //女生
            {
                b2[cnt2]=cnt3;
                cnt2++;
            }
        }
        sort(b1+1,b1+1+cnt1);//排序
        sort(b2+1,b2+1+cnt2);//同上
        for(int i=1;i<=cnt2;i++)//输出
        {
            if(b2[i]!=0)
            cout<<b2[i]<<" ";
        }
        cout<<endl;
        for(int i=1;i<=cnt1;i++)//输出
        {
            if(b1[i]!=0)
            cout<<b1[i]<<" ";
        }
        cout<<endl;
    }
}

注:比较蒟蒻,要喷就喷轻点