题解 | #NCPC#

比赛安排(PDF题面存放于本题)

https://ac.nowcoder.com/acm/contest/120562/A

1.题目分析

如果最大值的个数为奇数时任意一个最大值都有可能获得胜利,那么除了最大值位置以外都是输出0,最大值位置为输出1;如果 最大值的个数为偶数个两两抵消那么最大值以外的所有数都有可能获得胜利,那么最大值位置为输出0,其他位置输出1。

2.代码

#include<stdio.h>

int main()

{ long long max,m,n;

int t;

scanf("%d",&t);

int i,j;

for(i=0;i<t;i++)

{
    max=0;m=0;
    
    scanf("%lld",&n);
    
    long long int a[n];
    
    char s[n+1];
    
    for(j=0;j<n;j++)
    
    {
    
        scanf("%lld",&a[j]);
        
        if(max<a[j]) max=a[j];
        
    }
    
    for(j=0;j<n;j++)
    
    
        if(a[j]==max)
        
            m++;

     for(j = 0; j < n; j++)
    {
        if(a[j] == max)
        {
            if(m % 2 == 0) 
            {
                s[j] = '0';
            }
            else  
            {
                s[j] = '1';
            }
        }
        else  
            
        {
            if(m % 2 == 0) 
            {
                s[j] = '1';
            }
            else  
            {
                s[j] = '0';
            }
        }

    }
    s[n]=0;
      printf("%s\n",s);
}
return 0;

}

全部评论

相关推荐

01-27 15:41
门头沟学院 Java
想躺平的菜鸡1枚:我项目比你难、学历比你好、还有SCI论文,投java都被拒一大片,现在基本上都要问点agent开发
软件开发投递记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务