CodeForces 302A Eugeny and Array(读不懂题系列)

题目链接:CodeForces 302A Eugeny and Array
在这里插入图片描述
在这里插入图片描述
题目和样例2都没没看懂。。
if the elements of array a can be rearranged so as the sum ali + ali + 1 + … + ari = 0 数组可以重新排列QAQ

分析:就是问能否从这n个数中找出 ri-li+1 个数,使和为0。 可以输出1,不可以输出0。因为只有-1和1,所以要使得和为0则必有ri-li+1个1和ri-li+1个0。若ri-li+1为奇数肯定不行,为偶数,且(ri-li+1)/2 <= 1的个数 && <= -1的个数,则可以。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>

using namespace std;
typedef long long ll;
const int maxn = 200010;
const int INF = 0x3f3f3f3f;
int a[maxn];

int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	int tmp1=0,tmp2=0;		//变量忘初始化为0
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]==1)
			tmp1++;
		else
			tmp2++;
	}
		
	
	int l,r;
	while(m--)
	{
		scanf("%d%d",&l,&r);
		int num = r-l+1;
		if(num%2!=0)
			printf("0\n");
		else
		{
			if(num/2<=tmp1 && num/2<=tmp2)
				printf("1\n");
			else
				printf("0\n");
		}
	}
	return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/89944785
今日推荐