Educational Codeforces Round 95 (Rated for Div. 2) B. Negative Prefixes (贪心,构造)
阅读原文时间:2023年07月09日阅读:2

  • 题意:给你一串长度为\(n\)的序列,有的位置被锁上了,你可以对没锁的位置上的元素任意排序,使得最后一个\(\le0\)的前缀和的位置最小,求重新排序后的序列.

  • 题解:贪心,将所有能动的位置从大到小排个序就行了.

  • 代码:

    struct misaka{
        int a;
        int loc;
    }e[N];
    
    int t;
    int n;
    
    int main() {
        //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        t=read();
        while(t--){
            n=read();
            for(int i=0;i<n;++i){
                e[i].a=read();
            }
            for(int i=0;i<n;++i){
                e[i].loc=read();
            }
        for(int i=0;i&lt;n;++i){
            for(int j=0;j&lt;n;++j){
                if(e[i].loc!=1 &amp;&amp; e[j].loc!=1){
                    if(e[j].a&lt;e[i].a) swap(e[i],e[j]);
                }
            }
        }
        for(int i=0;i&lt;n;++i){
            printf("%d ",e[i].a);
        }
        puts("");
    }
    
    return 0;
    }