码迷,mamicode.com
首页 > 其他好文 > 详细

cf327A

时间:2020-07-25 23:48:52      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:tput   out   else   turn   差值   int   main   return   区间   

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

标签:tput   out   else   turn   差值   int   main   return   区间   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!