codeforces-302A-Eugeny and Array

原创 2015年11月21日 19:18:43

codeforces-302A-Eugeny and Array


                    time limit per test1 second     memory limit per test256 megabytes

Eugeny has array a = a1, a2, …, an, consisting of n integers. Each integer ai equals to -1, or to 1. Also, he has m queries:

Query number i is given as a pair of integers li, ri (1 ≤ li ≤ ri ≤ n).
The response to the query will be integer 1, if the elements of array a can be rearranged so as the sum ali + ali + 1 + … + ari = 0, otherwise the response to the query will be integer 0.
Help Eugeny, answer all his queries.

Input
The first line contains integers n and m (1 ≤ n, m ≤ 2·105). The second line contains n integers a1, a2, …, an (ai = -1, 1). Next m lines contain Eugene’s queries. The i-th line contains integers li, ri (1 ≤ li ≤ ri ≤ n).

Output
Print m integers — the responses to Eugene’s queries in the order they occur in the input.

input
2 3
1 -1
1 1
1 2
2 2
output
0
1
0

input
5 5
-1 1 1 1 -1
1 1
2 3
3 5
2 5
1 5
output
0
1
0
1
0

题目链接:cf-302A

题目大意:给出一个序列a,问在a->l~r的范围内,是否总共为0。

题目思路:刚开始想用线段树,但发现样例2看不懂。结果。。 if the elements of array a can be rearranged (如果序列a中元素经过重新排列后…)直接暴力就可以了

以下是代码:

#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <string>
#include <cstring>
using namespace std;
int a[200010];
int main(){
    int n,q;
    cin >> n >> q;
    int num1 = 0,num2 = 0;
    for (int i = 1; i <= n; i++)
    {
        scanf("%d",&a[i]);
        if (a[i] == 1) num1++;
        else num2++;
    }
    while(q--)
    {
        int l,r;
        scanf("%d%d",&l,&r);
        int ret = r - l + 1;
        if (ret % 2) printf("0\n");
        else
        {
            if (num1 >= ret / 2 && num2 >= ret / 2) printf("1\n");
            else printf("0\n");
        }   
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Codeforce 302A Eugeny and Array

模拟水题,交第一遍不知为什么会超时,可是第二遍又过了,奇怪。。。。。。。 真是浪费了我这一大串的头文件。。。。。 #include #include #include #include...
  • ymrfzr
  • ymrfzr
  • 2013年05月10日 13:09
  • 631

A.Eugeny and Array

A. Eugeny and Array Time Limit: 2000ms Case Time Limit: 2000ms Memory Limit: 262144KB 64-bit integ...

A. Eugeny and Array

A. Eugeny and Array time limit per test 2 seconds memory limit per test 256 megabytes ...

Codeforces Round #302 (Div. 2) B. Sea and Islands

time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard...

B. Eugeny and Play List

B. Eugeny and Play List time limit per test 2 seconds memory limit per test 256 megabyte...

Codeforces295A Greg and Array 数据结构+两次区间更新+点查询

Codeforces295A Greg and Array Time Limit:1500MS    Memory Limit:262144KB    64bit IO Format:%I64d...
  • fans_ac
  • fans_ac
  • 2016年08月01日 09:21
  • 135

Codeforces Round #136 (Div. 2) D. Little Elephant and Array

题意:给你n个数m个查询,问在每一个查询区间[l,r]范围内有多少个值为valu的数出现次数也为valu。 有两种用线段树的方法。两种方法同样都是离线处理查询,保存所有的查询,将查询按照终点从小到大...

codeforces721D Maxim and Array(贪心)

题意: 给出一系列数,要求可以进行k次操作,每次可以将数列中一个数+x或-x,求这些数的乘积的最小值。 要点: 这题就是贪心,如果负数是奇数个,就将当前数列中绝对值最小的数远离0,如果是偶数个,...

Codeforces Round #179 (Div. 1)-A. Greg and Array

time limit per test 2 seconds memory limit per test 256 megabytes input standard input o...

Codeforces Round #251 (Div. 2) C Devu and Partitioning of the Array

暴力。 #include #include #include #include using namespace std; int a[100005]; int b[100005],c[100005]...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:codeforces-302A-Eugeny and Array
举报原因:
原因补充:

(最多只允许输入30个字)