关于刚刚的Div 2 B
  • 板块学术版
  • 楼主over_caykl
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/7/30 18:28
  • 上次更新2023/10/27 17:41:25
查看原帖
关于刚刚的Div 2 B
271803
over_caykl楼主2022/7/30 18:28

只有sub3WA了,是我的问题还是题目的问题?

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int s,t;
int n,x,y;
int b[N],c[N];
int a[N],ans[N];
int q[N],w[N];
bool cmp(int u,int i){
    return u>i;
}

int main(){
    scanf("%d%d",&s,&t);
    while(t--){
        memset(a,0,sizeof(a));memset(ans,0,sizeof(ans));

        scanf("%d%d%d",&n,&x,&y);
        for(int i=1;i<=n;i++)
            scanf("%d",&b[i]),a[b[i]]++,c[i]=b[i];
        a[b[1]]--;
        sort(c+1,c+n+1,cmp);
        int cnt=unique(c+1,c+n+1)-c-1;
        for(int i=1;i<=cnt;i++){
            int sum=a[c[i]];
            if(sum==0){
                ans[c[i]]=1;
                continue;
            }
            if(sum%2==0||(c[i]==b[1]&&sum%2==1)){
                if(y){
                    if(x>=sum-1){                       
                        q[c[i]]=sum-1;
                        w[c[i]]=1;
                        x-=(sum-1),y--;
                    }   
                    else{
                        q[c[i]]=x;
                        w[c[i]]=sum-x;
                        x=0,y-=(sum-x);
                    }   
                    ans[c[i]]=1;
                }
                else q[c[i]]=sum,x-=(sum);
            }
            else{
                if(x>=sum) q[c[i]]=sum,x-=(sum);
                else{
                    q[c[i]]=x;
                    w[c[i]]=sum-x;
                    x=0,y-=(sum-x); 
                }
                ans[c[i]]=1;
            }
        }

        bool bk=0;
        for(int i=N-1;i>=0;i--){
            if(ans[i]){
                bk=1;
                for(int j=i;j>=0;j--) 
                    printf("%d",ans[j]);
            }
            if(bk) break;
        }
        if(!bk) printf("0");
        puts("");
        for(int i=1;i<n;i++){
            if(q[b[i+1]]) printf("^"),q[b[i+1]]--;
            else printf("|"),w[b[i+1]]--;   
        }
        puts("");
    }
    return 0;
}
2022/7/30 18:28
加载中...