首页 > 其他 > 详细

cf327A

时间:2020-07-25 19:55:54      阅读:62      评论:0      收藏:0      [点我收藏+]

cf327A
这一题理解:给你一个数n,然后接着n个由0或1组成的数,
求一段区间内 0的数-1的数差值最大的区间,然后把0和1互换。
最后数数有几个1。

思路:进行两次for循环,卡区间,然后再一个for循环找目前区间里0与1数目差值的最大值。最后最大值输出即可。
Input

5

1 0 0 1 0

Output

4

Input

4

1 0 0 1

Output

4

 #include <stdio.h>
int main()
{
	int n,i,j,k,a[110];
	int num1=0,num2=0,num3=0,max=-1,x,y;
	int sum=0,t;
	scanf("%d",&n);
	for (i=0; i<n; i++)
	{
		scanf ("%d",&a[i]);
		if (a[i]==1)
			sum++;
	}

	for (i=0; i<n; i++)
	{

		for (j=i; j<n; j++)
		{
			num1=0,num2=0;
			for (k=i; k<=j; k++)
			{
				if (a[k]==0)
					num1++;
				else if (a[k]==1)
					num2++;
			}
			num3=num1-num2;
			if (num3>max)
			{
				
				max=num3;
				x=i;
				y=j;
			}
		}
	}
  
	
	printf("%d\n",max+sum);
	return 0;}

cf327A

原文:https://www.cnblogs.com/shidianshixuan/p/13376205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!