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;
}

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

A. Eugeny and Array

A. Eugeny and Array time limit per test 2 seconds memory limit per test 256 megabytes ...
  • u010296826
  • u010296826
  • 2013年05月06日 20:12
  • 818

Codeforces 798C gcd思路题

Mike has a sequence A = [a1, a2, ..., an] of length n. He considers the sequence B = [b1, b2, ......
  • winycg
  • winycg
  • 2017年04月23日 20:42
  • 246

Codeforces 246B-Increase and Decrease【模拟】

B. Increase and Decrease time limit per test 2 seconds memory limit per test 256 megabyt...
  • qq_29600137
  • qq_29600137
  • 2016年05月03日 18:54
  • 228

Codeforces Round #179 (Div. 2) C Greg and Array

C. Greg and Array time limit per test 2 seconds memory limit per test 256 megabytes input stan...
  • xieshimao
  • xieshimao
  • 2013年04月12日 06:50
  • 2088

HDU 6197 array array array (2017沈阳网赛- 最长上升子序列)

题意: 告诉你n 个数, 问你是否去掉k 个数后, 原序列变成非严格递增序列或者非严格递减序列。  思路: 显然求一遍LIS , 倒过来在求一边LIS, 比较ans 和 k 的关系即可。 #i...
  • aozil_yang
  • aozil_yang
  • 2017年09月11日 08:38
  • 275

Java Array、List、Set互相转化

Java ArrayListSet互相转化 ArrayListSet互转实例 1 ArrayList互转 2 ListSet互转 3 ArraySet互转 ArraysasList 和 Collect...
  • u014532901
  • u014532901
  • 2017年12月16日 15:23
  • 801

【C++ STL应用与实现】5: 如何使用std::array (since C++11)

本文总结了STL中的序列式容器array的用法及注意事项。array的出现代表着C++的代码更进一步“现代化”,就像std::string的出现代替了c风格字符串并且能和STL配合工作一样,array...
  • elloop
  • elloop
  • 2015年12月24日 00:52
  • 7373

为什么要用boost::array

为什么要用boost::array1、boost::array 与 std::vector ( From Chapter 2. Boost.Array)As replacement for ordin...
  • mythma
  • mythma
  • 2005年06月16日 18:49
  • 5076

Java - Array Initialization

数组:相同类型的、用一个标识符名称封装到一起的,一个对象序列or基本类型数据序列。数组定义方式:int[] a1; 编译器不允许指定上述代码中数组的大小。这就又把我们带回到有关“引用”的问题上。现在拥...
  • ForWayfarer
  • ForWayfarer
  • 2008年06月13日 11:00
  • 1286

D:array array array

D:array array array 其实转换一下就变成了求最长不上升(下降)子序列 由于AiA_i...
  • lzh823046544
  • lzh823046544
  • 2017年09月10日 18:05
  • 79
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:codeforces-302A-Eugeny and Array
举报原因:
原因补充:

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